【问题标题】:How to check a field empty or not in MySQL / C#如何在 MySQL / C# 中检查字段是否为空
【发布时间】:2021-08-23 13:01:23
【问题描述】:

我有一个用于股票转移的表,并且有一个名为 trnsno 的整数字段。我需要得到它的最大值。如果为空,则 trnsno 为 1。

     sql = "SELECT MAX(`trnsno`) FROM stktransfer";
                   //...
//...
    
                    if (config.dt.Rows.Count > 0)
                    {
                        if (string.IsNullOrEmpty(Convert.ToString(config.dt.Rows[0].Field<int>(0))))
                        {
                            strTrnsNo = "1";
                        }
                        else
                        {
                            strTrnsNo = (Convert.ToInt32(config.dt.Rows[0].Field<int>(0)) + 1).ToString();
                        }
    
                    }

它说“无法将 DBNull.Value 转换为类型 'System.Int32'。请使用可为空的类型。” 我是 C# 新手,请帮助我。

【问题讨论】:

    标签: c# mysql


    【解决方案1】:

    您可以通过与DbNull.Value 进行比较来在 c# 中进行检查:

    object objTrnsNo = config.dt.Rows[0][0];
    strTrnsNo = DbNull.Value.Equals(objTrnsNo) ? "1" : objTrnsNo.ToString();
    

    【讨论】:

      【解决方案2】:

      你可以使用IFNULL 来检查NULL,这个例子会返回-1

      SELECT IFNULL(MAX(`trnsno`),-1) FROM stktransfer
      

      【讨论】:

      • null 时如何停止,返回记录?
      • 你总是得到响应,但你可以使用 NULL 或 n 而不是 -1
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 2015-12-28
      相关资源
      最近更新 更多