我刚开始用 C# 编写一个客户应用程序,大部分都使用 Visual Studio 设计模式。请记住,我昨天才开始学习 C# - 所以如果我犯了任何愚蠢的错误,请说出来。
到目前为止我所拥有的
- 一个数据库;
- 链接到客户和代理表的数据集;
- 绑定到 DataSet 的 BindingSource;
- 绑定到 BindingSource 的 Customer 表的 CustomerBindingSource;
- 绑定到 BindingSource 的 Agent 表的 AgentBindingSource;
- 绑定到 CustomerBindingSource 的 DataGridView,其中 AgentID 列是绑定到 AgentBindingSource 的组合框。
到目前为止,这工作正常。但是我有几个问题,其中一个是在下面的代码中......
编码
void grdCustomers_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
DataGridViewRow gvr = grdCustomers.Rows[e.RowIndex];
String currID = gvr.Cells[0].Value.ToString();
if (currID.Equals(""))
{
gvr.Cells[0].Value = "{id}";
}
}
void button1_Click(object sender, EventArgs e) //Save button for when the user has finished editing.
{
foreach (DataGridViewRow gvr in grdCustomers.Rows)
{
String currID = gvr.Cells[0].Value.ToString();
if (currID.Equals("{id}"))
{
String g = Guid.NewGuid().ToString();
gvr.Cells[0].Value = g;
}
}
customerTableAdapter.Update(customerAppDS21.Customer);
}
问题
尝试运行程序时,第 4 行导致问题。这是说对象引用未设置为对象的实例。我认为这是由 引起的
gvr.Cells[0]
,但我不知道为什么。在我看来,如果在行的设置完成(包括添加所有单元格)时调用它是有意义的。我无法让 DataGridView 将数据绑定到数据库。我希望用户能够编辑任何值,但是当他们添加一行时,直到他们单击“保存”按钮 (
button1
) 才会计算 id。
如果有人可以帮助我解决这些问题中的任何一个,我将不胜感激。
问候,
理查德