【发布时间】:2018-03-03 05:29:23
【问题描述】:
我正在尝试使此代码正常工作,但每次调试时都会遇到此错误。
这是我的代码:
private void button3_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConnectionString);
SqlDataAdapter sda = new SqlDataAdapter($"Select Count(*) from Table Where 'Utilizador=' '{textBox1.Text}' and Passe='{textBox2.Text}'", selectConnection: con);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows[1][2].ToString() == "1")
{
this.Hide();
Form2 ss = new Form2();
ss.Show();
}
else
{
MessageBox.Show("Utilizador e/ou Palavra Passe errados. Caso o erro pressista contacte o administrador de sistema.", "SiGiG - Alerta");
}
}
错误是
System.Data.SqlClient.SqlException: 'table' 附近的语法不正确。'
并在这行代码中抛出:
sda.Fill(dt);
感谢我能得到的所有帮助,对我的英语感到抱歉。
【问题讨论】:
-
你是说你有一个名为“table”的表吗?如果是这样,请尝试在其周围加上方括号。例如。 [表格]。
-
Table 是 Sql Server 的保留关键字。如果您确实有一个具有该名称的表(坏主意),您应该在查询中用方括号将其写在它周围
-
修复这个小错误后,请注意您的查询容易受到sql injection的攻击。使用参数,不要将用户输入的内容直接放在查询中
-
不要“尝试用方括号括起来”;
Table是 SQL 表的错误名称,请将名称更改为有意义的名称。 -
您不会从该查询中得到三列和两行。我真的建议你阅读更多关于 SQL 和 ADO.NET 的文档。
标签: c#