2014-01-22 18 views
0

我有一个Winform应用程序,它在Access数据库中存储了大约19个文本框数据..据我所知,我正在输入所有可能的数据执行nonquery命令之前...对于一个或多个必需的参数没有给出任何值.C#MS Access

这里是我的命令文本

subcom.CommandText = @"Insert Into GOA_DB (Srno, Branch_Code, Branch_Name, Node, 
     Region, Date_Comm, Address, MPLS, Leased_Line, LL_IP, Router_WAN_IP, Router_LAN_IP, 
     Distance_from_RCC, OATM_Parent_details, Curcuit_ID, Circuit_Type, G703_used, G703_srno, 
     V35_used, V35_srno, Bandwidth, Router_Make_Model, Router_srno, Router_vendor, 
     Backup_link, BckUP_Vendor, BcKup_WAN_IP) Values (@Srno, @Branch_Code, @Branch_Name, 
     @Node, @Region, @Date_Comm, @Address, @MPLS, @Leased_Line, @LL_IP, @Router_WAN_IP, 
     @Router_LAN_IP, @Distance_from_RCC, @OATM_Parent_details, @Curcuit_ID, 
     @Circuit_Type, @G703_used, @G703_srno, @V35_used, @V35_srno, @Bandwidth, 
     @Router_Make_Model, @Router_srno, @Router_vendor, @Backup_link, @BckUP_Vendor, 
     @BcKup_WAN_IP)"; 

这里是我的参数。

subcom.Parameters.AddWithValue(@"Srno", label26.Text); 
     subcom.Parameters.AddWithValue(@"Branch_Code", textBox1.Text); 
     subcom.Parameters.AddWithValue(@"Branch_Name", textBox2.Text); 
     subcom.Parameters.AddWithValue(@"Node", textBox3.Text); 
     subcom.Parameters.AddWithValue(@"Region", textBox4.Text); 
     subcom.Parameters.AddWithValue(@"Date_Comm", dateTimePicker1.Text); 
     subcom.Parameters.AddWithValue(@"Address", textBox5.Text); 


     if (radioButton1.Checked) 
     { 
      string yes = "Yes"; 
      subcom.Parameters.AddWithValue(@"MPLS", @yes); 
      subcom.Parameters.AddWithValue(@"Leased_Line", textBox15.Text); 
      subcom.Parameters.AddWithValue(@"LL_IP", textBox15.Text); 
     } 

     if (radioButton2.Checked) 
     { 
      string Y = "Yes"; 
      string na1 = "Not Applicable"; 
      subcom.Parameters.AddWithValue(@"Leased_Line", @Y); 
      subcom.Parameters.AddWithValue(@"MPLS", @na1); 
      subcom.Parameters.AddWithValue(@"LL_IP", textBox15.Text); 
     } 


     subcom.Parameters.AddWithValue(@"Router_WAN_IP", textBox8.Text); 
     subcom.Parameters.AddWithValue(@"Router_LAN_IP", textBox9.Text); 
     subcom.Parameters.AddWithValue(@"Distance_from_RCC", textBox6.Text); 
     subcom.Parameters.AddWithValue(@"OATM_Parent_details", textBox7.Text); 
     subcom.Parameters.AddWithValue(@"Curcuit_ID", textBox10.Text); 

     if (radioButton3.Checked) 
     { 

      string ml = "MLLN"; 
      string No = "No"; 
      subcom.Parameters.AddWithValue(@"Circuit_Type", radioButton3.Text); 
      subcom.Parameters.AddWithValue(@"G703_used", No); 
      subcom.Parameters.AddWithValue(@"V35_used", No); 
      subcom.Parameters.AddWithValue(@"V35_used", @No); 
      subcom.Parameters.AddWithValue(@"V35_srno", textBox17.Text); 
     } 
     //to enter non-mlln details 
     if (radioButton4.Checked) 
     { 
      string yes3 = "Yes"; 
      //string non = "Non-MLLN"; 
      subcom.Parameters.AddWithValue(@"Circuit_Type", radioButton4.Text); 
      subcom.Parameters.AddWithValue(@"G703_used", yes3); 
      subcom.Parameters.AddWithValue(@"G703_srno", textBox16.Text); 
      subcom.Parameters.AddWithValue(@"V35_used", yes3); 
      subcom.Parameters.AddWithValue(@"V35_srno", textBox17.Text); 

     } 

     subcom.Parameters.AddWithValue(@"Bandwidth", comboBox1.Text); 
     subcom.Parameters.AddWithValue(@"Router_Make_Model", textBox13.Text); 
     subcom.Parameters.AddWithValue(@"Router_srno", textBox14.Text); 
     subcom.Parameters.AddWithValue(@"Router_vendor", textBox12.Text); 

     if (radioButton5.Checked) 
     { 

      subcom.Parameters.AddWithValue(@"Backup_link", radioButton5.Text); 
      subcom.Parameters.AddWithValue(@"BckUp_vendor", textBox18.Text); 
      subcom.Parameters.AddWithValue(@"Bck_WAN_IP", textBox19.Text); 

     } 
     if (radioButton6.Checked) 
     { 


      subcom.Parameters.AddWithValue(@"Backup_link", radioButton6.Text); 
      subcom.Parameters.AddWithValue(@"BckUp_vendor", textBox18.Text); 
      subcom.Parameters.AddWithValue(@"Bck_WAN_IP", textBox19.Text); 
     } 


if (null2(this)) 
      { 
      // MessageBox.Show("Some empty values are present"); 
       try 
       { 
        int resul = subcom.ExecuteNonQuery(); 
        if (resul > 0) 
        { 
         MessageBox.Show("Entered Successfully"); 
        } 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 
       } 

     } 

这里抛出的异常是没有找到一个或多个必需参数...执行给定值停止... 任何线索?

+0

问题是与像'subcom.Parameters.AddWithValue线(@“MPLS”,@yes);'你不通过你的价值观与领先的参数'@'。我很惊讶,即使运行。 –

+0

什么是正确的做法? –

+1

删除'@':'subcom.Parameters.AddWithValue(@“MPLS”,是);'从那开始。 –

回答

1

除了代码中的错误之外,您不能在查询语句中添加参数之后再添加它们。 也就是说,INSERT语句中的所有参数都必须位于命令参数中。

在OleDbCommand更大的问题,即参数是由他们的位置索引,而不是他们的名字。

试试这个方法:

subcom.CommandText = "Insert Into GOA_DB (Srno, Branch_Code, Branch_Name, Node, Region, Date_Comm, Address, MPLS, Leased_Line, LL_IP, Router_WAN_IP, Router_LAN_IP, Distance_from_RCC, OATM_Parent_details, Curcuit_ID, Circuit_Type, G703_used, G703_srno, V35_used, V35_srno, Bandwidth, Router_Make_Model, Router_srno, Router_vendor, Backup_link, BckUP_Vendor, BcKup_WAN_IP) Values" + 
             "(@Srno, @Branch_Code, @Branch_Name, @Node, @Region, @Date_Comm, @Address, @MPLS, @Leased_Line, @LL_IP, @Router_WAN_IP, @Router_LAN_IP, @Distance_from_RCC, @OATM_Parent_details, @Curcuit_ID, @Circuit_Type, @G703_used, @G703_srno, @V35_used, @V35_srno, @Bandwidth, @Router_Make_Model, @Router_srno, @Router_vendor, @Backup_link, @BckUP_Vendor, @BcKup_WAN_IP)"; 

var strParams = "@Srno,@Branch_Code,@Branch_Name,@Node,@Region,@Date_Comm,@Address,@MPLS,@Leased_Line,@LL_IP,@Router_WAN_IP,@Router_LAN_IP,@Distance_from_RCC,@OATM_Parent_details,@Curcuit_ID,@Circuit_Type,@G703_used,@G703_srno,@V35_used,@V35_srno,@Bandwidth,@Router_Make_Model,@Router_srno,@Router_vendor,@Backup_link,@BckUP_Vendor,@BcKup_WAN_IP"; 

subcom.Parameters.AddRange(strParams.Split(',').Select(x => new SqlParameter(x, SqlDbType.NVarChar)).ToArray()); 

string yes = "Yes"; 
string No = "No"; 
string na1 = "Not Applicable"; 

subcom.Parameters["@Srno"].Value = label26.Text; 
subcom.Parameters["@Branch_Code"].Value = textBox1.Text; 
subcom.Parameters["@Branch_Name"].Value = textBox2.Text; 
subcom.Parameters["@Node"].Value = textBox3.Text; 
subcom.Parameters["@Region"].Value = textBox4.Text; 
subcom.Parameters["@Date_Comm"].Value = dateTimePicker1.Text; 
subcom.Parameters["@Address"].Value = textBox5.Text; 

subcom.Parameters["@Router_WAN_IP"].Value = textBox8.Text; 
subcom.Parameters["@Router_LAN_IP"].Value = textBox9.Text; 
subcom.Parameters["@Distance_from_RCC"].Value = textBox6.Text; 
subcom.Parameters["@OATM_Parent_details"].Value = textBox7.Text; 
subcom.Parameters["@Curcuit_ID"].Value = textBox10.Text; 


subcom.Parameters["@Bandwidth"].Value = comboBox1.Text; 
subcom.Parameters["@Router_Make_Model"].Value = textBox13.Text; 
subcom.Parameters["@Router_srno"].Value = textBox14.Text; 
subcom.Parameters["@Router_vendor"].Value = textBox12.Text; 


if (radioButton1.Checked) 
{ 
    subcom.Parameters["@MPLS"].Value = yes; 
    subcom.Parameters["@Leased_Line"].Value = textBox15.Text; 
    subcom.Parameters["@LL_IP"].Value = textBox15.Text; 
} 
if (radioButton2.Checked) 
{ 
    subcom.Parameters["@Leased_Line"].Value = yes; 
    subcom.Parameters["@MPLS"].Value = na1; 
    subcom.Parameters["@LL_IP"].Value = textBox15.Text; 
} 
if (radioButton3.Checked) 
{ 
    string ml = "MLLN"; 
    subcom.Parameters["@Circuit_Type"].Value = radioButton3.Text; 
    subcom.Parameters["@G703_used"].Value = No; 
    subcom.Parameters["@V35_used"].Value = No; 
    subcom.Parameters["@V35_used"].Value = No; 
    subcom.Parameters["@V35_srno"].Value = textBox17.Text; 
} 
//to enter non-mlln details 
if (radioButton4.Checked) 
{ 
    //string non = "Non-MLLN"; 
    subcom.Parameters["@Circuit_Type"].Value = radioButton4.Text; 
    subcom.Parameters["@G703_used"].Value = yes; 
    subcom.Parameters["@G703_srno"].Value = textBox16.Text; 
    subcom.Parameters["@V35_used"].Value = yes; 
    subcom.Parameters["@V35_srno"].Value = textBox17.Text; 
} 
if (radioButton5.Checked) 
{ 
    subcom.Parameters["@Backup_link"].Value = radioButton5.Text; 
    subcom.Parameters["@BckUp_vendor"].Value = textBox18.Text; 
    subcom.Parameters["@Bck_WAN_IP"].Value = textBox19.Text; 
} 
if (radioButton6.Checked) 
{ 
    subcom.Parameters["@Backup_link"].Value = radioButton6.Text; 
    subcom.Parameters["@BckUp_vendor"].Value = textBox18.Text; 
    subcom.Parameters["@Bck_WAN_IP"].Value = textBox19.Text; 
} 
+0

很好地工作... 感谢mil ... –

相关问题