TextBox.Text does not work in Dapper
我是新来的衣冠楚楚的。当用户在下拉样式文本框中选择一个项目名称并单击选择按钮时,该特定行应添加到DataGridView中。
问题是txt_sell_item.text不会检索值并将其添加到DataGridView中。相反,如果我在查询中只写itemname='bread',它就会工作。(bread是数据库中"我的itemname"列中的一个项目)
[我还将我的DataGridView与Order类绑定]
我的选择按钮单击事件是。
1 2 3 4 5 6 7 8 | 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(); } |
我的订单是…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace test { public class Orders { public int ItemId { get; set; } public string ItemName { get; set; } public string Brand { get; set; } public string Category { get; set; } public int Quantity { get; set; } public int Price { get; set; } } } |
我的GUI是
1 | string query = $"SELECT * FROM tbl_ItemDetail WHERE itemName='{txt_sell_item.Text}'"; |
但是,您不需要将字符串连接在一起来构建SQL命令,但需要使用参数化查询。
所以查询文本变成
1 | string query ="SELECT *FROM tbl_ItemDetail WHERE ItemName=@ItemName"; |
命令是
1 |