请修改代码中的变量名为”@AttendanceResult”,将其首字母大写,与参数化查询中的命名保持一致。具体修改后的代码如下:
private void btnAttendance_Click(object sender, EventArgs e)
{
// 获取选中行
DataGridViewRow selectedRow = dataGridView.SelectedRows[0];
// 获取学生姓名、课程名称和教师姓名
string Sname = selectedRow.Cells["Sname"].Value.ToString();
string Cname = selectedRow.Cells["Cname"].Value.ToString();
string Tname = selectedRow.Cells["Tname"].Value.ToString();
// 获取考勤结果
string attendanceResult;
if (radioButton1.Checked)
attendanceResult = "是";
else if (radioButton2.Checked)
attendanceResult = "否";
else
return; // 如果没有选择任何radioButton,则不执行保存操作
// 连接数据库
using (SqlConnection connection = new SqlConnection("YourConnectionString"))
{
connection.Open();
// 构造SQL语句并执行插入操作
string sql = "INSERT INTO Attend (Sname, Cname, Tname, kaoqin) VALUES (@Sname, @Cname, @Tname, @AttendanceResult)";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@Sname", Sname);
command.Parameters.AddWithValue("@Cname", Cname);
command.Parameters.AddWithValue("@Tname", Tname);
command.Parameters.AddWithValue("@AttendanceResult", attendanceResult);
// 执行插入操作
int rowsAffected = command.ExecuteNonQuery();
// 关闭数据库连接
connection.Close();
}
}
这样就可以正确使用参数化查询并保存考勤记录。请注意,你需要将”YourConnectionString”替换为实际的数据库连接字符串。
内容由零声教学AI助手提供,问题来源于学员提问