【问题标题】:populate DataGridView from database and TextBox从数据库和 TextBox 填充 DataGridView
【发布时间】:2017-09-22 03:27:40
【问题描述】:

基本上,我想从TextBox 添加另一列以及我从数据库中查询的值。我希望我的 datagridview 显示类似

          |itemcode|Category|itemDescription|unitcost|quantity|

其中itemcode, Category, itemDescription, unitcost 来自数据库,quantity 来自文本框输入。

private void btnAddToCart_Click(object sender, EventArgs e)
{
    con.OpenConnection();
    MySqlCommand cmd = con.connection.CreateCommand();
    string search = txtSearchProduct.Text;
    string quantity = txtQuantity.Text;
    string query = "SELECT itemcode, Category, itemDescription, unitcost FROM tblprowareproducts WHERE itemDescription LIKE ?search";
    cmd.CommandText = query;
    cmd.Parameters.AddWithValue("?search", "%" + search + "%");
    using (MySqlDataAdapter mda = new MySqlDataAdapter(cmd))
    {
        DataTable dt = new DataTable();
        mda.Fill(dt);

        dgvCart.DataSource = dt;

    }
}

有没有办法在unitcost 之后添加另一列名为quantity 并且它的值来自TextBox

【问题讨论】:

  • 还有什么问题?预期的结果是什么?你收到的结果是什么?
  • 更新了我的问题

标签: c# .net winforms datagridview


【解决方案1】:

该问题有不同的解决方案,例如您可以通过这种方式将列添加到DataTable

DataTable dt = new DataTable();
mda.Fill(dt);

var quantity = dt.Columns.Add("quantity", typeof(int));
quantity.DefaultValue = int.Parse(txtQuantity.Text);
dt.AsEnumerable().ToList().ForEach(r =>
{
    r[quantity] = quantity.DefaultValue;
});

dgvCart.DataSource = dt;

注意 1:您可能希望使用 TryParse 从文本中获取整数值。

注意2:添加行时,列的默认值适用于列。因此,要将其应用于现有行,您需要像我一样使用循环。对于之后添加的新行,它将自动应用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多