簡體   English   中英

無法將空的文本框值保存到數據庫。(格式為int)

[英]Cannot save empty text box value to database.(format is in int)

當我為銀行區域和成本中心提供空值時,在保存到數據庫時會給出錯誤。

錯誤:輸入字符串的格式不正確。

   objMEndorsement.BankRegion =  Convert.ToInt32(txtBankRegion.Text);
   objMEndorsement.CostCenter = Convert.ToInt32(txtCostCenter.Text); 

這是我使用的代碼。如何將空文本框值保存到數據庫。

嘗試這樣的事情:

objMEndorsement.BankRegion =  string.IsNullOrWhiteSpace(txtBankRegion.Text) ? 0 : Convert.ToInt32(txtBankRegion.Text)

嘗試使用int.TryParse()可以更好地處理轉換。

您可以這樣操作:

int bankRegion = 0; //Default value if wasn't able to parse
int.TryParse( txtBankRegion.Text, out value );
objMEndorsement.BankRegion = bankRegion;

然后,您可以對其他字段執行相同的操作。

是的,使用三元運算符並分配相應的值objMEndorsement.BankRegion =(txtBankRegion.Text.trim())嗎? 0:Convert.ToInt32(txtBankRegion.Text)

更換

 objMEndorsement.BankRegion =  Convert.ToInt32(txtBankRegion.Text);
 objMEndorsement.CostCenter = Convert.ToInt32(txtCostCenter.Text);

通過

 objMEndorsement.BankRegion =  Convert.ToInt32(txtBankRegion.Text??0);
 objMEndorsement.CostCenter = Convert.ToInt32(txtCostCenter.Text??0); 

?? 在C#中為null合並運算符

編輯:最好的選擇是像這樣使用tryParse

bool isInteger=int.TryParse(txtBankRegion.Text??0, out num1);
if(isInteger)
{
//insert into database
}

使objMEndorsement.BankRegion為NULL並:

if(!string.IsNullOrWhiteSpace(txtBankRegion.Text))
    objMEndorsement.BankRegion =  Convert.ToInt32(txtBankRegion.Text)

(如果NULL是屬性objMEndorsement.BankRegion = Convert.ToInt32(txtBankRegion.Text)的初始值,則此方法有效)

否則(屬性仍然必須接受NULL):

objMEndorsement.BankRegion = string.IsNullOrWhiteSpace(txtBankRegion.Text) ? null : Convert.ToInt32(txtBankRegion.Text);

請記住,您的數據庫字段也必須可以為NULLable(否則,當嘗試將NULL保持為持久狀態時,您將收到DB錯誤)。

通過將值類型轉換為可為空的類型,然后將其發送到數據庫,使其成為可為空的類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM