基本上我想添加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
的{{1}}之后添加另一列,并且它的值来自quantity
?
答案 0 :(得分: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 :添加行时,列的默认值适用于列。因此,要将其应用于现有行,您需要像我所做的那样使用循环。对于之后添加的新行,它将自动应用。