C# 文本框。文本在整洁中不起作用
我是个衣冠楚楚的新手。当用户在下拉样式文本框中选择项目名称并单击“选择”按钮时,该特定行应添加到datagridview中 问题是txt_sell_item.Text不会检索值并将其添加到datagridview中。相反,如果我在查询中只写ItemName='bread',它就会工作。(“面包”是数据库中“我的项目名称”列中的一个项目) [我还将datagridview与Order类绑定] 我的选择按钮单击事件为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
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});