TextBox.Text 在 Dapper 中不起作用
TextBox.Text does not work in Dapper
我是 Dapper 的新手。当用户在下拉式文本框中选择项目名称并单击 Select Button 时,该特定行应添加到 datagridview 中。
问题是 txt_sell_item.Text 没有检索值并将其添加到 datagridview 中。相反,如果我只是在我的查询中写 ItemName='bread' 它就可以了。 ('bread' 是我在数据库中的 ItemName 列中的一个项目)
[ 我也将我的 datagridview 绑定到 Order Class]
我的 Select 按钮点击事件是。
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();
}
我的订单 Class 是...
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 是
这与 Dapper 无关,但这是您的查询字符串错误。
你应该把它写成(只需添加初始 $ 来理解你的 txt_sell_item.Text)
string query = $"SELECT * FROM tbl_ItemDetail WHERE itemName='{txt_sell_item.Text}'";
然而,您不会将字符串连接在一起来构建 sql 命令,而是需要使用参数化查询。
所以查询文本变为
string query = "SELECT *FROM tbl_ItemDetail WHERE ItemName=@ItemName";
命令是
ordersBindingSource.DataSource = db.Query<Orders>(query, new {ItemName = txt_sell_item.Text});
我是 Dapper 的新手。当用户在下拉式文本框中选择项目名称并单击 Select Button 时,该特定行应添加到 datagridview 中。
问题是 txt_sell_item.Text 没有检索值并将其添加到 datagridview 中。相反,如果我只是在我的查询中写 ItemName='bread' 它就可以了。 ('bread' 是我在数据库中的 ItemName 列中的一个项目)
[ 我也将我的 datagridview 绑定到 Order Class]
我的 Select 按钮点击事件是。
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();
}
我的订单 Class 是...
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 是
这与 Dapper 无关,但这是您的查询字符串错误。
你应该把它写成(只需添加初始 $ 来理解你的 txt_sell_item.Text)
string query = $"SELECT * FROM tbl_ItemDetail WHERE itemName='{txt_sell_item.Text}'";
然而,您不会将字符串连接在一起来构建 sql 命令,而是需要使用参数化查询。
所以查询文本变为
string query = "SELECT *FROM tbl_ItemDetail WHERE ItemName=@ItemName";
命令是
ordersBindingSource.DataSource = db.Query<Orders>(query, new {ItemName = txt_sell_item.Text});