2012-02-07 18 views
0

おはようございます。 SQL DBのテーブルにデータを挿入したいのですが、値 "5"と "6"のコンボボックスがあります。コンボボックスでいずれかをクリックすると、これらの値をデータベース(MS SQL Server 2008)に挿入します。バインドされていて問題がないテキストボックスもいくつかあります。問題は、コンボボックスのバインディング(私は推測)です。私はSQLの例外を取得します。コンボボックスの値をSQL Server DBテーブルに挿入する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

+0

'vba'タグはこれと何が関係していますか? – Fionnuala

+0

ここに表示されます:objCommand.Parameters.AddWithValue( "@ color"、cboColor.SelectedValue.ToString)。 NullReference例外が処理されませんでした。何か案は?返信いただきありがとうございますbtw – Pantheo

答えて

0

cboColor.SelectedValue;初期化されず、何も設定されません。 .SelectedValueでToStringを呼び出そうとすると、NULL参照例外が生成されます。私はあなたが望むものがcboColor.Textプロパティだと信じています。これは、コンボボックスが現在表示している値の現在のテキストが何であれ、それを引き出します。 C#での例については

+0

それは実際にヌル例外アートを修正しましたが、別の問題が発生します。コンボボックスの2番目の値を挿入することはできません。最初のもの( "5")はOKであるようです。何か案が? – Pantheo

+0

例外とは何ですか?手動で入力する場合、なぜcboColorをバインドするのですか? – codechurn

+0

アートは私を救った!私はそれらを縛るべきではありません。今はうまく動作します。ありがとう! – Pantheo

0

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(); 
     } 
関連する問題