【问题标题】:TextBox.Text does not work in DapperTextBox.Text 在 Dapper 中不起作用
【发布时间】:2017-10-14 08:30:07
【问题描述】:

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

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

[我还将我的数据网格视图与订单类绑定]

我的选择按钮点击事件是。

    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();  
    }

我的订单类别是...

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; }
    }
}

我的图形用户界面是

【问题讨论】:

    标签: c# sql-server winforms textbox dapper


    【解决方案1】:

    这与 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});
    

    【讨论】:

    • 添加初始 $ 时出现意外字符 '$' 错误。
    • 你用的是什么版本的VS?
    • 但是您的参数化查询的第二个选项对我有用,它从 txt_sell_item.Text 中获取价值。谢谢 :)
    • 很高兴能提供帮助。字符串前面的 $ 字符是 VS 2015 编译器引入的 字符串插值 功能。见stackoverflow.com/questions/31014869/…
    • 我正在使用 VS 2012。我已经遇到 $ 字符错误并且无法解决它..
    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多