在我尝试在datagrid中输出密码之后,从 txt_Username
textbox,我得到这个错误消息:
mysql.data.mysqlclient.mysqlexception:“where子句”中的未知列“test”
MySqlDataAdapter da = new MySqlDataAdapter("Select Password from tbl_anmeldedaten Where Username=" + txt_Username.Text, con);
da.SelectCommand.CommandType = CommandType.Text;
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
2条答案
按热度按时间hmtdttj41#
您使用的是字符串连接,它是sql注入攻击的向量。也许文本字段中的用户名正在执行一些不允许执行的sql操作(例如
'' OR Test=1
. 有很多关于使用参数化查询的资源可以解决这个问题。rdlzhqv92#
错误的确切原因是您试图执行以下查询:
看起来像吗
Test
应该用单引号括起来吗?是的,应该是这样的,您可以将其添加到原始查询中。但是,在c中连接这样一个查询会为sql注入留下可能性。更好的方法是使用准备好的语句: