2012-02-07 43 views
0

晚上好。 我想插入数据到SQL DB中的表中。我有一个值为“5”和“6”的组合框。当您单击组合框中的一个或另一个时,我希望将这些值插入到数据库(MS SQL Server 2008)中。我也有一些文本框是很有约束力的,并且没有问题。问题在于组合框的绑定(我猜)。我得到了sql异常。将组合框的值插入到SQL Server数据库表中Visual Basic 2010(Visual Studio 2010)

这是一段代码。感谢

Private Sub BindFields() 
     txtSurname.DataBindings.Add("Text", ObjDataView, "surname") 
     txtName.DataBindings.Add("Text", ObjDataView, "name") 
     cboColor.DataBindings.Add(cboColor.SelectedValue.ToString, ObjDataView, "color") 
End Sub 

Private Sub Customers_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    cboColor.Items.Add("5") 
    cboColor.Items.Add("6") 

FillDataSetAndView() 
     BindFields() 
End Sub 


Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 

     Dim objCommand As SqlCommand = New SqlCommand() 
     Dim intPosition As Integer 
     intPosition = objCurrencyManager.Position 

     ObjConnection.Open() 
     objCommand.Connection = ObjConnection 
     objCommand.CommandText = "INSERT INTO tblCustomers" & "(name, surname, color)" & "VALUES(@name,@surname,@color);" 
     objCommand.Parameters.AddWithValue("@name", txtName.Text) 
     objCommand.Parameters.AddWithValue("@surname", txtSurname.Text) 
     objCommand.Parameters.AddWithValue("@color", cboColor.SelectedValue.ToString) 
     Try 
      objCommand.ExecuteNonQuery() 
     Catch SqlExceptionErr As SqlException 
      MessageBox.Show(SqlExceptionErr.Message) 
     End Try 

     ObjConnection.Close() 


     FillDataSetAndView() 
     BindFields() 


     objCurrencyManager.Position = intPosition 
     ShowPosition() 
End Sub 
+0

什么是你得到的例外呢?详细信息,我的意思是.. – Isuru 2012-02-07 17:07:32

+0

'vba'标记与此有什么关系? – Fionnuala 2012-02-07 17:15:02

+0

它在这里命中:objCommand.Parameters.AddWithValue(“@ color”,cboColor.SelectedValue.ToString)。 NullReference异常未处理。有任何想法吗?感谢您的快速回复btw – Pantheo 2012-02-07 17:35:33

回答

0

检查cboColor.SelectedValue;它没有被初始化并且没有设置。试图在.SelectedValue上调用ToString将生成一个空引用异常。我相信你想要的是cboColor.Text属性;这将拉取组合框当前显示的任何值的当前文本。

+0

这确实修复了空的异常艺术,但另一个问题引起了。它不能插入组合框的第二个值。第一个(“5”)似乎没问题。任何想法? – Pantheo 2012-02-07 19:10:03

+0

你有什么异常和在哪一行?你为什么要绑定cboColor如果你手动填充它? – codechurn 2012-02-07 20:49:51

+0

艺术你救了我!我不应该绑定他们。现在工作正常。谢谢! – Pantheo 2012-02-07 21:43:51

0

例如在C#:

if (comboBox1.SelectedItem != null) 
     { 
      SqlConnection con = new SqlConnection(Class1.str); 
      con.Open(); 
      string query= "Insert Into Ex(Combo)Values ('" + comboBox1.SelectedItem + "')"; 
      SqlCommand com = new SqlCommand(query, con); 
      com.ExecuteNonQuery(); 
      con.Close(); 
     }