输入新字段时如何在 WPF DataGrid 中自动生成 ID

Posted

技术标签:

【中文标题】输入新字段时如何在 WPF DataGrid 中自动生成 ID【英文标题】:How do I auto-generate an ID in my WPF DataGrid when entering in new fields 【发布时间】:2015-02-04 21:19:05 【问题描述】:

我想要做的是当这个人去输入一个新数据以在数据库中创建一个新行/DataGrid。我希望自动生成 ID。我不希望用户输入他们自己的 ID。除了,我真的不知道如何做到这一点。

我曾尝试研究如何做到这一点,但完全没有运气。

这就是我将行添加到 DataGrid 和数据库中的内容。

private void addRows_Click(object sender, RoutedEventArgs e)

    SqlConnection conn = new SqlConnection(sqlstring);
    conn.Open();
    string Query = "Insert into [ASSIGNMENT] ([AssignmentID], [Description], [TotalPoints], [PointsEarned], [GradeBucketID]) Values('" + this.txtAssignment.Text + "','" + txtDescription.Text + "','" + txtTotalPoints.Text + "','" + txtPointsEarned.Text + "', '" + txtGradeBucket.Text + "')";
    SqlCommand createCommand = new SqlCommand(Query, conn);
    createCommand.ExecuteNonQuery();
    MessageBox.Show("Updated");
    conn.Close();

注意:这是WPFDataGrid。不是WinFormDataGridView。有区别。

对此的任何帮助将不胜感激!谢谢!

【问题讨论】:

【参考方案1】:

最好的方法是在数据库中配置你的表来自动生成密钥我的意思是 Identity 并且不为唯一列插入任何值并让表自动生成它

【讨论】:

【参考方案2】:

只需将数据库中的 ID 字段定义为自动字段即可。 在Access中是AutoNumber,在mysql中是赋予字段auto_increment属性等等。

【讨论】:

【参考方案3】:

您也可以使用globally unique identifier (GUID) 来生成唯一ID:

var ID = Guid.NewGuid().ToString();

【讨论】:

以上是关于输入新字段时如何在 WPF DataGrid 中自动生成 ID的主要内容,如果未能解决你的问题,请参考以下文章

WPF开发中页面加载时DataGrid如何隐藏数据源中DataGridTemplateColumn之外的列

如何在 WPF DataGrid 中动态生成列?

如何隐藏 WPF DataGrid 中的列标题?

wpf datagrid 单元格如何默认单击一次点中

WPF 中DataGrid的应用

如何在WPF中自定义控件