【发布时间】:2016-03-27 14:41:15
【问题描述】:
我在一个按钮点击中有如下代码:
private void button7_Click(object sender, EventArgs e)
{
using (SqlConnection connect = new SqlConnection(PubVars.connStr))
{
string query = "SELECT * FROM Users WHERE username = '" + comboBox1.SelectedValue.ToString() + "' AND password = '" + txtDelUsrPassword.Text + "'";
using (SqlCommand cmd = new SqlCommand(query, connect))
{
connect.Open();
DataRow[] foundRow = cmd.ExecuteNonQuery();
connect.Close();
}
}
}
在我输入该行之后
DataRow[] foundRow = cmd.ExecuteNonQuery();
在 cmd.ExecuteNonQuery 下有一条红色波浪线。因此,当我尝试保存并运行它时,错误消息:
无法将类型“int”隐式转换为“System.Data.DataRow[]”。
当查询是标准 SQL 选择时,这是什么原因?
【问题讨论】:
-
阅读ExecuteNonQuery的REMARKS部分的最后一个逗号
-
你使用了错误的方法来检索数据,你真的应该去查一下。
-
你想执行一个 SQL 查询,所以你打电话给
ExecuteNonQuery...你认为会发生什么? -
另外,您很容易受到 SQL 注入攻击,并且将密码存储为纯文本。
标签: c# sqlcommand