[英]SqlDataAdapter.Fill() incorrect syntax near “=” C#
我收到此错误
“ =”附近的语法不正确
我在网上遇到这个错误
sda.Fill(dt);
我不知道我犯了什么错误。 我浏览了许多文章,但没有一篇可以帮助我解决问题。
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\TECHNOGEEKZ\Desktop\USSv0.1\USSv0.1\USSv0.1\db\Database.mdf;Integrated Security=True");
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("SELECT name FROM attachments WHERE idno = " + comboBox1.Text + "", con);
DataTable dt = new DataTable();
sda.Fill(dt);
comboBox2.DataSource = dt;
comboBox2.DisplayMember = "name";
comboBox2.ValueMember = "name";
数据库表看起来像
CREATE TABLE [dbo].[attachments]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[idno] INT NULL,
[name] VARCHAR (MAX) NULL,
[location] VARCHAR (MAX) NULL
);
有人可以解决这个错误吗? 该代码中的错误到底在哪里?
首先,尝试返回comboBox1.Text
,以查看它是否返回哪个值。 假设它返回一个空,空值或非整数,您的查询将是错误的。
其次,您应该使用参数,而不是直接将comboBox1.Text
传递给SQL查询。
它有助于减少像您当前一样的荒谬错误,并防止SQL注入。
将您的sda
更改为:
SqlDataAdapter sda = new SqlDataAdapter("SELECT name FROM attachments WHERE idno = @idNo", con);
sda.SelectCommand.Parameters.AddWithValue("@idNo",comboBox1.Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.