[英]how to make particular column editable for copy in datagridview of devexpress in c#?
[英]How to make a unique column in datagridview with c#?
添加行时如何防止在datagridview中重复行?
我需要像sql一样创建唯一列。
有什么办法可以通过属性窗口或programmaticalLy做到这一点?
我想将其添加为评论,但我没有特权。 只是为了给您一个提示,如果您正在使用列表或类似内容填充dgv,可以使用“ distinct”函数并尝试一下。 如果您正在读取一些文本文件,则需要编写一些代码来删除重复项。
为了防止用户添加新行,您可以在属性窗口中将其禁用,并将allowusertoadd从true设置为false。
如果您对重复的行或数据有疑问,则必须首先检查数据源。
关于创建唯一列,您可以在属性窗口中以编程方式进行设置。
从属性窗口添加列,您可以选择列属性,然后添加或编辑所需的列,
您可以以编程方式键入以下语法:datagridview1.columns.add(“ Column1”);等
不能(直接)在DataGridView中完成此操作。
您最可能会通过.net数据绑定(一个BindingSource)将DataGridView绑定到DataTable之类的DataSource。 如果不是,请立即将一个DataSet添加到您的项目中,并在其中创建一个新的DataTable。
该(DataTable)为您提供了一个内存中的数据表,可以用您喜欢的任何方式(从数据库加载,以编程方式插入)填充数据。
然后,您可以按此处所述向该表的列添加约束。
您可以在添加新的唯一列之前检查现有的唯一列值,例如,
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
方法中检查唯一值。
希望这可以帮助...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.