繁体   English   中英

SqlDataAdapter.Fill()“ =” C#附近的语法不正确

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM