gpt4 book ai didi

c# - 在调用 Read() 之前访问字段的尝试无效。代码不工作

转载 作者:行者123 更新时间:2023-11-29 00:09:36 24 4
gpt4 key购买 nike

string query2 = "Select * from books where Book_code=";
query2 = query2+ "'" + textBox2.Text + "'";

cmd = new MySqlCommand(query2, con);
MySqlDataReader d2 = cmd.ExecuteReader();
d2.Read();

if (d2.GetString(0).ToLower() == textBox2.Text.ToLower())
{

}

当进入 if 条件时,它给出了一个异常,在调用 Read() 之前尝试访问字段无效,而我也在使用 d2.read()。

最佳答案

建议使用参数化查询来避免SQL注入(inject)攻击。

还要注意 MySqlDataReader.Read() 返回 boolean 值。它将为您逐行读取记录。它应该在读者到达最后检索到的行时执行。

string query = "Select * from books where Book_code=@BookCode";

cmd = new MySqlCommand(query, con);
cmd.Parameters.AddWithValue("@BookCode", textBox2.Text);

using(MySqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
if (reader.GetString(0).ToLower() == textBox2.Text.ToLower())
{

}
}
}

关于c# - 在调用 Read() 之前访问字段的尝试无效。代码不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com