在将数据添加到datagridview之前检查行是否存在
问题描述:
我无法使此代码正常工作,我正在从SQL(WHILE)查询中将行添加到datagridview,但在执行此操作时需要运行一个foreach里面来检查row.Cells [0] .value的添加它之前存在,但我发现了以下错误:在将数据添加到datagridview之前检查行是否存在
错误1 foreach语句无法在类型“System.Windows变量的操作。 Forms.DataGridView',因为'System.Windows.Forms.DataGridView'不包含'GetEnumerator'的公共定义C:\ Users ................ project1.cs
他再是我的代码:
//dgData is a datagridview with columns created programmatically, this works already by the way.
dgData.ColumnCount = 3;
dgData.Columns[0].Name = "ColumnA";
dgData.Columns[0].Name = "ColumnB";
dgData.Columns[0].Name = "ColumnC";
string query1 = " SELECT * FROM ....... ";
SqlCommand cmd1 = new SqlCommand(query1, connection);
//Create a data reader and Execute the command
SqlDataReader dataReader1 = cmd1.ExecuteReader();
Application.DoEvents();
while (dataReader1.Read())
{
string[] row1 = new string[] { dataReader1["columnA"].ToString(), dataReader1["columnB"].ToString(), dataReader1["columnC"].ToString() };
Boolean found = false;
// this foreach is what doesn't work.
foreach (DataGridViewRow row in dgData)
{
if (row.Cells[0].Value == dataReader1["columnA"].ToString())
{
// row exists
found = true;
MessageBox.Show("Row already exists");
}
}
if (!found)
{
dgData.Rows.Add(row1);
}
}
答
我不是舒尔,但会不会是你必须使用
foreach (DataGridViewRow row in dgData.Rows)
奏效,谢谢! – AJ152