Сравнение DataTable, полученного с SQL и данными DataGridView c# - PullRequest
0 голосов
/ 21 января 2020

Я работаю с 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;
                    }
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...