DataGridView 顯示處方明細,點擊「合計藥費」按鈕自動統計金額並寫入 Access。
private void btnTotalDrugCost_Click(object sender, EventArgs e) {
decimal total = 0m;
foreach (DataGridViewRow row in dgvPrescription.Rows) {
if (row.IsNewRow) continue; // 跳過新行佔位
var cell = row.Cells["DrugCost"]; // 假設列名為 DrugCost
if (cell.Value != null && decimal.TryParse(cell.Value.ToString(), out decimal cost)) {
total += cost;
}
}
txtTotalDrugCost.Text = total.ToString("F2");
// 寫入 Access(參數化防注入)
using (var conn = new OleDbConnection(connStr))
using (var cmd = new OleDbCommand(
"UPDATE Registration SET TotalDrugCost = ? WHERE RegID = ?", conn)) {
cmd.Parameters.AddWithValue("@Cost", total);
cmd.Parameters.AddWithValue("@RegID", currentRegID);
conn.Open();
cmd.ExecuteNonQuery();
}
}
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Hospital.accdb;Persist Security Info=FalseDate, Number),用 [DrugCost] 括起