2016-05-17 50 views
0

索引和長度必須引用字符串中的位置。當我試圖將數據保存到數據庫中我使用Windows窗體應用程序的參數名稱長度錯誤..這是我的代碼索引和長度必須指向字符串內的位置。參數名稱長度c#嘗試在winform中保存數據時出錯

if ((mode == Globale.OperationMode.ADD) && 
      (Globale.DocExist("tbl_OrderMain", "OrderNo", txtOrderNo.Text.Trim()))) 
{    
    [here i am getting error] 
    string NewNo = Globale.FindOrderNo(txtOrderNo.Text.Trim().Substring(0, 6)); 
    MessageBox.Show("Before you some body save " + txtOrderNo.Text + " now new No. is :" + NewNo, "Duplicat Doc No."); 
    txtOrderNo.Text = NewNo; 
} 
+4

該消息似乎對我來說很清楚。修剪後,您的txtOrderNo不包含6個字符的文本。所以你得到的例外,因爲你試圖從位置0讀取6個字符 – Steve

回答

1

似乎txtOrderNo.Text長度小於6個字符,那爲什麼它的投擲一個例外。

if ((mode == Globale.OperationMode.ADD) && (Globale.DocExist("tbl_OrderMain", "OrderNo", txtOrderNo.Text.Trim()))) 
     {    
      //Put a check here 
      string NewNo = string.Empty; 
If(!string.IsNullOrEmpty(txtOrderNo.Text.Trim()) && txtOrderNo.Text.Trim().Length >= 6) 
    { 
     NewNo = Globale.FindOrderNo(txtOrderNo.Text.Trim().Substring(0, 6)); 
    } 
    else 
    { 
     NewNo = //Assign it to some other value. 
    } 
    MessageBox.Show("Before you some body save " + txtOrderNo.Text + " now new No. is :" + NewNo, "Duplicat Doc No."); 
    txtOrderNo.Text = NewNo; 
} 
+0

IsNullOrEmpty的第一個檢查是無用的。 Text屬性永遠不爲null,第二個檢查對於空字符串也是好的。 – Steve

相關問題