如何使用 C# 在 DataGridView 中制作一个唯一的列?
How to make a unique column in datagridview with c#?
如何在添加行时防止 datagridview 中的行重复?
我需要像 sql 那样创建一个独特的列。
有没有什么方法可以通过属性 window 或 programmaticalLy 来做到这一点?
我想将其添加为评论,但我没有权限。只是给你一个提示,如果你正在使用列表或类似的东西填充你的 dgv,你可以使用 "distinct" 函数并试一试。如果您正在阅读一些文本文件,您需要编写一些代码来删除重复项。
要防止用户添加新行,您可以从属性中禁用它 window 并将 allowusertoadd 从 true 设置为 false。
如果您有关于重复行或数据的问题,您必须先检查您的数据源。
关于创建唯一列,您可以通过属性 window 和编程方式进行设置。
从属性 window 添加列,您可以 select 列属性并添加或编辑所需的列,
以编程方式,您可以键入以下语法:
datagridview1.columns.add("Column1");等
这不是在 DataGridView 中(直接)完成的。
您很可能已经通过 .net 数据绑定(BindingSource)将 DataGridView 绑定到 DataTable 之类的 DataSource。如果没有,请立即将 DataSet 添加到您的项目并在其中创建一个新的 DataTable。
此 (DataTable) 为您提供内存中的 table 数据,可以用您喜欢的任何方式填充数据(从数据库加载,以编程方式插入)。
然后您可以按照 here.
中的说明向此 table 的列添加约束
您可以在添加新列之前检查现有的唯一列值,例如,
var rows = dataGridView1.Rows.OfType<DataGridViewRow>()
.Where(x => x.Cells["cell1"].Value == "newCellVal1")
.ToArray();
if (rows == null || rows.Length == 0)
{
//New row is unique
//Logic to add new row
}
else
{
//Row already exists with "newCellVal1"
//Update the existing value rows
rows[0].Cells["cell2"].Value = "newCellVal2"; //Coulmn "cell2" with a new value "newCellVal2"
rows[0].Cells["cell3"].Value = "newCellVal3"; //Coulmn "cell3" with a new value "newCellVal3"
}
此处,cellVal
是数据网格中的唯一列名,newCellVal
是新行中唯一列的值。您还可以添加列组合以检查 Any
方法中的唯一值。
希望这对您有所帮助...
如何在添加行时防止 datagridview 中的行重复?
我需要像 sql 那样创建一个独特的列。
有没有什么方法可以通过属性 window 或 programmaticalLy 来做到这一点?
我想将其添加为评论,但我没有权限。只是给你一个提示,如果你正在使用列表或类似的东西填充你的 dgv,你可以使用 "distinct" 函数并试一试。如果您正在阅读一些文本文件,您需要编写一些代码来删除重复项。
要防止用户添加新行,您可以从属性中禁用它 window 并将 allowusertoadd 从 true 设置为 false。
如果您有关于重复行或数据的问题,您必须先检查您的数据源。
关于创建唯一列,您可以通过属性 window 和编程方式进行设置。
从属性 window 添加列,您可以 select 列属性并添加或编辑所需的列,
以编程方式,您可以键入以下语法: datagridview1.columns.add("Column1");等
这不是在 DataGridView 中(直接)完成的。
您很可能已经通过 .net 数据绑定(BindingSource)将 DataGridView 绑定到 DataTable 之类的 DataSource。如果没有,请立即将 DataSet 添加到您的项目并在其中创建一个新的 DataTable。
此 (DataTable) 为您提供内存中的 table 数据,可以用您喜欢的任何方式填充数据(从数据库加载,以编程方式插入)。
然后您可以按照 here.
中的说明向此 table 的列添加约束您可以在添加新列之前检查现有的唯一列值,例如,
var rows = dataGridView1.Rows.OfType<DataGridViewRow>()
.Where(x => x.Cells["cell1"].Value == "newCellVal1")
.ToArray();
if (rows == null || rows.Length == 0)
{
//New row is unique
//Logic to add new row
}
else
{
//Row already exists with "newCellVal1"
//Update the existing value rows
rows[0].Cells["cell2"].Value = "newCellVal2"; //Coulmn "cell2" with a new value "newCellVal2"
rows[0].Cells["cell3"].Value = "newCellVal3"; //Coulmn "cell3" with a new value "newCellVal3"
}
此处,cellVal
是数据网格中的唯一列名,newCellVal
是新行中唯一列的值。您还可以添加列组合以检查 Any
方法中的唯一值。
希望这对您有所帮助...