C# 文本框。文本在整洁中不起作用

C# 文本框。文本在整洁中不起作用,c#,sql-server,winforms,textbox,dapper,C#,Sql Server,Winforms,Textbox,Dapper,我是个衣冠楚楚的新手。当用户在下拉样式文本框中选择项目名称并单击“选择”按钮时,该特定行应添加到datagridview中 问题是txt_sell_item.Text不会检索值并将其添加到datagridview中。相反,如果我在查询中只写ItemName='bread',它就会工作。(“面包”是数据库中“我的项目名称”列中的一个项目) [我还将datagridview与Order类绑定] 我的选择按钮单击事件为 using (IDbConnection db = new SqlConn

我是个衣冠楚楚的新手。当用户在下拉样式文本框中选择项目名称并单击“选择”按钮时,该特定行应添加到datagridview中

问题是txt_sell_item.Text不会检索值并将其添加到datagridview中。相反,如果我在查询中只写ItemName='bread',它就会工作。(“面包”是数据库中“我的项目名称”列中的一个项目)

[我还将datagridview与Order类绑定]

我的选择按钮单击事件为

    using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString))
    {
         if (db.State == ConnectionState.Closed)
            db.Open();
            string query = "SELECT *FROM tbl_ItemDetail WHERE ItemName='{txt_sell_item.Text}'";
            ordersBindingSource.DataSource = db.Query<Orders>(query, commandType: CommandType.Text);
            dataGridView1.Refresh();  
    }
我的GUI是


这与Dapper无关,但它是查询字符串中的一个错误。
您应该将其写成(只需添加开头的$即可理解您的txt\u sell\u item.Text)

但是,您不需要将字符串连接在一起来构建sql命令,而是需要使用参数化查询

因此,查询文本变为

string query = "SELECT *FROM tbl_ItemDetail WHERE ItemName=@ItemName";
命令是

ordersBindingSource.DataSource = db.Query<Orders>(query, new {ItemName = txt_sell_item.Text});
ordersBindingSource.DataSource=db.Query(Query,new{ItemName=txt\u sell\u item.Text});

添加初始$时出现意外字符“$”错误。您使用的是什么版本的VS?但您的第二个参数化查询选项对我有效,它从txt\u sell\u item.Text获取值。。谢谢:)很高兴能帮上忙。字符串前的$字符是VS 2015编译器引入的字符串插值功能。看,我正在使用VS 2012。我已经遇到$character错误,无法解决它。。
string query = "SELECT *FROM tbl_ItemDetail WHERE ItemName=@ItemName";
ordersBindingSource.DataSource = db.Query<Orders>(query, new {ItemName = txt_sell_item.Text});