【发布时间】:2020-11-18 11:54:11
【问题描述】:
这就是我的 datagridview 的样子:
名称、价格、总计和数量列的值是从数据库加载的。我想在“添加或减去项目”列中添加一个初始值零 (0)。
这就是我填充数据网格视图的方式:
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,并且递增/递减的值可以显示在“添加或减去的项目/s”列中,但如果我能把它会更好那里有一个初始值。
我试过这个:
DataTable dt = new DataTable();
DataColumn newColumn = new DataColumn("addOrSubtractItem", typeof(String));
newColumn.DefaultValue = 0;
dt.Columns.Add(newColumn);
但它不显示 0
DataGridViewTextBoxColumn buttonColumn = new DataGridViewTextBoxColumn();
buttonColumn.Name = "Item/s Added or Subtracted";
buttonColumn.HeaderText = "Item/s Added or Subtracted";
stockGridView.Columns.Insert(4, buttonColumn);
但我不能将 0 值放入单元格中。
【问题讨论】:
-
向数据表添加新行时将使用默认值。所以我假设您没有添加通过添加/创建显示的行,而是通过其他方式(例如来自 Tableadapter 的查询)将其填充到数据表中。您需要在 DataTable 中的所有 DataRow 对象中显式设置行的值。
-
我使用 datagridview 中的“编辑列”手动添加列,并尝试在“添加或减去的项目”列中输入一个值。
-
使用
typeof(int)而不是typeof(string) -
我要问...“增加或减少项目”列的目的是什么?它是增加还是减少“数量”值?我只是好奇“如何”使用该列与表中的其他列相关,考虑到该列不在数据库中,那么,“如何”“保存”这个值?我错过了什么吗?
-
@JohnG 这只是为了视觉目的,所以用户会知道他添加/减去了多少项目
标签: c# datagridview