[英]Compare string null or empty in c#
在我的MySQL Db表中,我有Check
字段。
存儲在“ Check
它”字段上的值可以是: null
或-1
。
當存儲在“ Check
”字段中的值為null
或-1
我需要返回xxx
值。 我嘗試過:
string Check = sdr["Check"] == DBNull.Value || sdr["Check"] == "-1,00" ? "xxx" : sdr["Check"].ToString();
沒有成功,因為輸出始終為-1,00
。
該如何解決呢?
請幫助我,非常感謝。
問題在於您正在比較錯誤的對象。 從System.Data
結果集中返回的值是實際值的包裝。 您需要的是鍵入的版本。 基本上,檢查應如下所示:
int checkIndex = sdr.GetOrdinal("Check");
string Check = sdr.IsDBNull(checkIndex) || (sdr.GetString(checkIndex) == "-1,00") ? "xxx" : sdr.GetString(checkIndex);
如果“ Check”實際上是一個數字,則可能要使用IntValue("Check")
調用,以解決全球化問題(如果您的應用程序曾經部署在使用“”的地方)。 而不是小數點的“,”。
有關完整的API,請參見https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldatareader(v=vs.110).aspx 。
如果您的MySQL數據庫未設置為使用與C#應用程序相同的語言環境格式,則您對數字格式的假設可能不正確。 為了使支票的版本更可靠,我建議使用以下方法:
int checkIndex = sdr.GetOrdinal("Check");
string Check = "xxx";
double checkValue = sdr.IsDBNull(checkIndex) ? -1 : Convert.ToDouble(sdr[checkIndex]);
if (checkValue != -1)
{
Check = checkValue.ToString(CultureInfo.CurrentCulture);
}
如果數據類型為十進制10,2 ,則需要Convert.ToDecimal
值:
string Check = (sdr["Check"] == DBNull.Value || Convert.ToDecimal(sdr["Check"]) == -1) ? "xxx" : sdr["Check"].ToString();
您可以通過以下代碼將字符串比較為空或空
string str = Your string
if(String.IsNullOrEmpty(str))
{
if yes, it comes here
}
else
{
if not, it comes here
}
String.IsNullOrEmpty()
是bool
類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.