【问题标题】:Compare value of datagrid with value selected from database将数据网格的值与从数据库中选择的值进行比较
【发布时间】:2014-05-24 14:05:39
【问题描述】:

我用 excel 数据填充网格并想比较数据库中是否存在值?

for (int i = 0; i < dataGridView1.RowCount; i++)
        {
            if (radioButton1.Checked == true)
            {
                string strConn = @"Data Source='" + dbconfig.tb1 + "';Initial Catalog='" + dbconfig.tb2 + "';user='" + dbconfig.tb3 + "';pwd='" + dbconfig.tb4 + "'";
                SqlConnection conn = new SqlConnection(strConn);
                conn.Open();
                SqlCommand cmd = new SqlCommand("SELECT CODE FROM LG_" + dbconfig.tb5 + "_TABLE WHERE CODE NOT LIKE '" + dataGridView1.Rows[i].Cells[0].Value + "'", conn);
                cmd.ExecuteNonQuery();
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    MessageBox.Show("Check ITEMS" + reader[i].ToString());
                }
                conn.Close();
            }
        }

【问题讨论】:

  • 你能详细说明你的问题吗

标签: datagridview compare sqldatareader


【解决方案1】:

如果我理解正确,您想检查数据库中是否存在网格中具有某些值的记录,我建议您使用 ExecuteScalar 方法:

SqlCommand cmd = new SqlCommand(SELECT COUNT (Code) FROM Table WHERE .....);
var res = command.ExecuteScalar();

                    if ((int)res > 0)
                        //Record exists
                    else
                        //record does not exists

【讨论】:

  • 网格值 bmw -mercedes -audi DB 值 --- -mercedes -audi 我想捕获并警告单元格“BMW”,因为数据库中不存在 BMW
  • 从列表中的 DGV 收集值并构建正确的 sql 查询,例如“SELECT COUNT (Code) where Manufacturer in (your values from DGV)。或者分别检查每个 DGV 行:SELECT COUNT (Code ) FROM 表 WHERE 制造商 = 来自 DGV 的值
猜你喜欢
  • 1970-01-01
  • 2016-06-15
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多