实现
要通过student symbol number
获取attendance
。
法典
对symbolnumber
进行硬编码是有效的,但对于runtime
值,代码不起作用。
字符串查询 = $"从出席中选择 *,其中符号编号 = 1111;"; 这行得通
字符串查询 = $"从出席中选择 *,其中符号编号={符号编号};"; 这不起作用
using (MySqlConnection conn = GetConnection())
{
conn.Open();
string query = $"select * from attendance where symbolnumber={symbolnumber};"; -> This does not work
MySqlCommand cmd = new MySqlCommand(query, conn);
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
list.Add(new Attendance()
{
SymbolNumber = reader.GetInt64("symbolnumber"),
AttendanceDate = reader.GetDateTime("attendancedate"),
IsPresent = reader.GetBoolean("ispresent"),
});
}
}
}
仅供参考
查询中没有错误或异常,也没有拼写错误。
您应该在此处使用预准备语句:
using (MySqlConnection conn = GetConnection())
using (MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand())
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM attendance WHERE symbolnumber = @symbolnumber";
cmd.Prepare();
cmd.Parameters.AddWithValue("@symbolnumber", 1111);
// retrieve results here
}