2017-06-04 39 views
0

我无法使此代码正常工作,我正在从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); 
    } 


} 

回答

1

我不是舒尔,但会不会是你必须使用

foreach (DataGridViewRow row in dgData.Rows) 
+0

奏效,谢谢! – AJ152

相关问题