如何在c#.net中datagridview的特定列的单元格中添加值?
这就是我的datagridview的外观: “值名称”、“价格”、“总计”和“数量”列是从数据库中加载的。我想在“添加或减去的项目”列中添加初始值零(0) 这是我填充datagridview的方式:如何在c#.net中datagridview的特定列的单元格中添加值?,c#,datagridview,C#,Datagridview,这就是我的datagridview的外观: “值名称”、“价格”、“总计”和“数量”列是从数据库中加载的。我想在“添加或减去的项目”列中添加初始值零(0) 这是我填充datagridview的方式: con.Open(); DataTable dt = new DataTable(); SqlCommand cm = new SqlCommand("SELECT * FROM Stock"); cm.Connection = con; SqlDataAdapter da
con.Open();
DataTable dt = new DataTable();
SqlCommand cm = new SqlCommand("SELECT * FROM Stock");
cm.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cm);
da.Fill(dt);
stockGridView.AutoGenerateColumns = false;
stockGridView.Columns[0].DataPropertyName = "Name";
stockGridView.Columns[1].DataPropertyName = "Price";
stockGridView.Columns[2].DataPropertyName = "Total";
stockGridView.Columns[3].DataPropertyName = "Quantity";
stockGridView.DataSource = dt;
con.Close();
我的+和-列现在正在工作,现在可以按1递增/递减,递增/递减的值可以显示在“添加或减去的项目”列中,但如果我可以在其中输入初始值,效果会更好
我试过这个:
DataTable dt = new DataTable();
DataColumn newColumn = new DataColumn("addOrSubtractItem", typeof(String));
newColumn.DefaultValue = 0;
dt.Columns.Add(newColumn);
但它不显示0
我也试过:参考->
但是我不能把0值放在单元格中。你基本上做得很好,但还不完全。从DB填充datatable后,向datatable添加新列,并将所有行设置为“0”值。然后将DataTable设置为GridView的数据源 程序代码示例:
con.Open();
DataTable dt = new DataTable();
SqlCommand cm = new SqlCommand("SELECT * FROM Stock");
cm.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cm);
da.Fill(dt);
con.Close();
//add new column to Datatable
dt.Columns.Add("addOrSubtractItem", typeof(int));
foreach (DataRow dr in dt.Rows)
{
dr["addOrSubtractItem"] = 0;
}
stockGridView.AutoGenerateColumns = false;
stockGridView.Columns[0].DataPropertyName = "Name";
stockGridView.Columns[1].DataPropertyName = "Price";
stockGridView.Columns[2].DataPropertyName = "Total";
stockGridView.Columns[3].DataPropertyName = "Quantity";
stockGridView.Columns[4].DataPropertyName = "addOrSubtractItem";
stockGridView.DataSource = dt;
将新行添加到datatable时将使用defaultvalue。因此,我假设您没有添加通过Add/Create显示的行,而是通过一些其他方法(比如来自Tableadapter的查询)将其填充到datatable中。您需要在DataTable中的所有DataRow对象上明确地设置行的值。我使用datagridview中的“编辑列”手动添加列,并尝试在“添加或减去的项”列中添加值。使用
typeof(int)
而不是typeof(string)
我必须问一下…此操作的目的是什么“添加或减去项目”列?它是添加或减去“数量”值吗?我只是好奇“如何”将此列与表中的其他列相关联,考虑到该列不在DB中,那么,“如何”将“保存”这个值?我遗漏了什么吗?@JohnG它只是为了视觉目的,所以用户将知道他添加/减去了多少项
con.Open();
DataTable dt = new DataTable();
SqlCommand cm = new SqlCommand("SELECT * FROM Stock");
cm.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cm);
da.Fill(dt);
con.Close();
//add new column to Datatable
dt.Columns.Add("addOrSubtractItem", typeof(int));
foreach (DataRow dr in dt.Rows)
{
dr["addOrSubtractItem"] = 0;
}
stockGridView.AutoGenerateColumns = false;
stockGridView.Columns[0].DataPropertyName = "Name";
stockGridView.Columns[1].DataPropertyName = "Price";
stockGridView.Columns[2].DataPropertyName = "Total";
stockGridView.Columns[3].DataPropertyName = "Quantity";
stockGridView.Columns[4].DataPropertyName = "addOrSubtractItem";
stockGridView.DataSource = dt;