Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果为空,则选择总和-更新";0“;_C#_Sql_Sql Server_Winforms - Fatal编程技术网

C# 如果为空,则选择总和-更新";0“;

C# 如果为空,则选择总和-更新";0“;,c#,sql,sql-server,winforms,C#,Sql,Sql Server,Winforms,我得到了这个代码,选择SUM,然后在某处更新这个结果。但问题是,在这些条件下,没有找到SELECT SUM(castka)的结果 我想知道如果没有找到任何结果,如何对DBNull进行异常,而则更新“0”。由于我没有那么长的编程时间,有人能帮我解决这个问题吗 非常感谢您抽出时间 private void btn_zavri_Click(object sender, EventArgs e) { try { spojeni.Close

我得到了这个代码,
选择SUM
,然后
在某处更新这个结果。但问题是,在这些条件下,
没有找到SELECT SUM(castka)
的结果

我想知道如果没有找到任何结果,如何对DBNull进行
异常,而
则更新“0”
。由于我没有那么长的编程时间,有人能帮我解决这个问题吗

非常感谢您抽出时间

private void btn_zavri_Click(object sender, EventArgs e)
    {
        try
        {

            spojeni.Close();
            SqlCommand sc2 = new SqlCommand("SELECT SUM(castka) AS sumcastka FROM kliplat WHERE akce='" + zakce.Text + "' AND rocnik='" + rocnik + "'", spojeni);
            spojeni.Open();
            int vysledek2 = Convert.ToInt32(sc2.ExecuteScalar());
            SqlCommand sc3 = new SqlCommand("UPDATE zajezd SET s_prijmy=@s_prijmy WHERE akce='" + zakce.Text + "' AND rocnik='" + rocnik + "'", spojeni);
            spojeni.Close();
            sc3.Parameters.AddWithValue("@s_prijmy", vysledek2);
            spojeni.Open();
            sc3.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            MessageBox.Show("" + ex);
        }
        finally
        {
            spojeni.Close();
            this.Close();
        }
    }

这就是你想要实现的吗

SELECT ISNULL(SUM(castka), 0) AS sumcastka FROM kliplat
改变这个

  int vysledek2 = Convert.ToInt32(sc2.ExecuteScalar());


使用ISNULL包装sum函数,当没有记录时返回0:

SELECT ISNULL(SUM(castka), 0) AS sumcastka

对没错,非常感谢您的回答和时间,几分钟后我将接受。这不准确,如果
和(castka)
不是空的,而是
零的,该怎么办?我们无法知道是否满足
条件。
 object test = sc2.ExecuteScalar();
 if(test != DBNull.Value && test!=null)
 {
     //rest of your code
     int vysledek2 = Convert.ToInt32(test);
 }
SELECT ISNULL(SUM(castka), 0) AS sumcastka