Я работаю с SQL в C#, и я делаю , делая запрос, получая DataTable с данными и сравнивая его с данными DataGridView, если значения равны, я помещаю «error» в columnError .
Но я думаю, что неэффективен , и есть лучший способ сделать это. Я начинаю с SQL здесь и также с C #, поэтому я спрашиваю об этом, может быть, я могу сделать это лучше с SQL.
Это мой код :
public void existeCodigoenBD()
{
System.Diagnostics.Debug.WriteLine(" Método existeCodigoenBD ");
string strsql;
SqlConnection conexion = null;
string connString = @"Data Source=srvdesarrollo;Initial Catalog=gdo;User ID=gdo;Password=gdo71";
SqlCommand comando = null;
DataTable table = new DataTable();
conexion = new SqlConnection(connString);
conexion.Open();
SqlDataAdapter adapter;
strsql = " select * from [gdo].[dbo].[1Volcar1] where codigo not in (select codigo from T_IS where CodEMP = '3') order by codigo";
comando = new SqlCommand(strsql, conexion);
System.Diagnostics.Debug.WriteLine(" La query que se va a hacer es: " + strsql);
adapter = new SqlDataAdapter(comando);
comando.CommandText = strsql;
table.Columns.Clear();
table.Clear();
adapter.Fill(table);
conexion.Close();
foreach (DataRow row1 in table.Rows)
{
foreach (DataGridViewRow row in dataGridViewTennetPaint.Rows)
{
//dataGridViewTennetPaint.Rows[i].Cells["codigo"].Value);
if (!row.Equals(dataGridViewTennetPaint.Rows[dataGridViewTennetPaint.Rows.Count - 1]))
{
System.Diagnostics.Debug.WriteLine(" Es igual, " + row.Cells["columnCodigo"].Value.ToString() + " y " + row1["codigo"]);
if (row.Cells["columnCodigo"].Value.ToString().Equals(row1["codigo"].ToString()))
{
row.Cells[2].Value = "Error";
dataGridViewTennetPaint.Update();
dataGridViewTennetPaint.Refresh();
System.Diagnostics.Debug.WriteLine(" No es igual");
break;
}
}
}
}
}