当值为空或为空时如何返回默认值

Posted

技术标签:

【中文标题】当值为空或为空时如何返回默认值【英文标题】:How to return default value when value is null or empty 【发布时间】:2015-08-31 21:58:45 【问题描述】:

如果返回值为 null 或为空,如何使以下代码返回零。另外我怎样才能只返回数据表上的第一条记录

  private DataTable GetData(SqlCommand cmd)
        
            gridoutofstock.DataBind();
            DataTable dt = new DataTable();
            String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["AhlhaGowConnString"].ConnectionString;
            SqlConnection con = new SqlConnection(strConnString);
            SqlDataAdapter sda = new SqlDataAdapter();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = con;
            try
            
                con.Open();
                sda.SelectCommand = cmd;
                sda.Fill(dt);
                return dt;
            
            catch (Exception ex)
            
                throw ex;
            
            finally
            
                con.Close();
                sda.Dispose();
                con.Dispose();
            
        

【问题讨论】:

返回0?你的函数被定义为返回一个DataTable - 你不能返回0。您可能应该添加更多详细信息或澄清您的问题。 这是我的 sql 命令,它只返回一个值 select sum(Quantity) from [dbo].Orderdetails 那么如何使用 insted 的数据表? 请用详细信息编辑您的问题,不要将它们添加为 cmets - 这些可能会被读者忽略。 听起来您在问“为什么我在需要 int 时使用 DataTable 作为返回类型” - 这有点难以解释...也许您正在寻找 @987654321 @ ? 【参考方案1】:

您需要使用 SqlCommand.ExecuteScalar 而不是 SqlDataAdapter,您正在尝试检索单个标量值而不是 DataSet。

例子:

static int GetOrderQuantity()
        
            int quantity = 0;
            string sql = "select sum(Quantity) from [dbo].Orderdetails ";
            using (SqlConnection conn = new SqlConnection("Your connection string"))
            
                SqlCommand cmd = new SqlCommand(sql, conn);
                try
                
                    conn.Open();
                    quantity = (int)cmd.ExecuteScalar();
                
                catch (Exception ex)
                
                    //Handle exception
                
            
            return quantity;
        

【讨论】:

以上是关于当值为空或为空时如何返回默认值的主要内容,如果未能解决你的问题,请参考以下文章

当我说可以为空或为空时,我不断收到“db context null”,我该如何解决?

当值为空时,我无法返回我想要的图像[关闭]

给变量一个默认值的最好方法(模拟 Perl ||, ||= )

list集合为空或为null的区别

当值为空时如何取消设置属性?

vue中当数据为空时的处理