如果 SQL 数据库列为 NULL 则插入到数据网格视图 0 中

本文关键字:数据网 数据 网格 视图 插入 数据库 SQL NULL 如果 | 更新日期: 2023-09-27 18:31:07

大家好,我得到了这个查询,它可能在第 klisluz.cena 列中,klisluz.pocet null 或 DBNull(不确定)值。

我可以问一下,如果存在空值,我如何在此 sQuery 中防止这些列,以便我可以插入到 datagridview 0 中?

由于这是JOIN查询,我不确定我应该在哪里实现ISNULL(klisluz.pocet,0)和ISNULL(klisluz.cena)

DataTable dt = new DataTable();
string sZakce = string.Empty;
if (zakce != null && zakce.Text != null)
{
    sZakce = zakce.Text;
}
string sQuery = string.Format("SELECT zajsluz.akce, zajsluz.text, klisluz.cena,
  klisluz.pocet, klisluz.subkey, zajsluz.ID FROM zajsluz LEFT JOIN klisluz ON
  zajsluz.ID = klisluz.IDzajsluz WHERE zajsluz.akce= '{0}' and 
  ISNULL(klisluz.subkey, '" + vyberradek + "') = '" + vyberradek + "'
  GROUP BY klisluz.subkey, zajsluz.akce, klisluz.cena, zajsluz.text,
  klisluz.pocet, zajsluz.ID", sZakce);
SqlDataAdapter SDA = new SqlDataAdapter(sQuery, spojeni);
SDA.Fill(dt);
dtg_ksluzby.DataSource = dt;

谢谢你的时间。

到目前为止,我尝试了这个:

for (int i = 0; i < (dtg_ksluzby.Rows.Count - 0); i++)
{
    if (dtg_ksluzby.Rows[i].Cells["pocet"].Value == null ||
       (string)dtg_ksluzby.Rows[i].Cells["pocet"].Value == string.Empty)
    {
    dtg_ksluzby.Rows[i].Cells["pocet"].Value = 0;
    }
    if (dtg_ksluzby.Rows[i].Cells["cena"].Value == null ||
      (string)dtg_ksluzby.Rows[i].Cells["cena"].Value == string.Empty)
    {
    dtg_ksluzby.Rows[i].Cells["cena"].Value = 0;
    }
}

但是找不到这些列名的例外情况。

如果 SQL 数据库列为 NULL 则插入到数据网格视图 0 中

您可以使用

ISNULL (Transact-SQL)

将 NULL 替换为指定的替换值。

语法;

ISNULL ( check_expression , replacement_value )

例如;

SELECT ...., ISNULL(klisluz.cena, 0), ISNULL(klisluz.pocet, 0)

尝试以下查询

string sQuery = string.Format("SELECT zajsluz.akce, zajsluz.text, klisluz.cena,
  ISNULL(klisluz.pocet,0) as [pocet], klisluz.subkey, zajsluz.ID FROM zajsluz LEFT JOIN klisluz ON
  zajsluz.ID = klisluz.IDzajsluz WHERE zajsluz.akce= '{0}' and 
  ISNULL(klisluz.subkey, '" + vyberradek + "') = '" + vyberradek + "'
  GROUP BY klisluz.subkey, zajsluz.akce, klisluz.cena, zajsluz.text,
  ISNULL(klisluz.pocet,0), zajsluz.ID", sZakce);