2016-05-17 28 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

相关问题