|
分類:[.NET 全般]
こんばんわ。
色々調べたのですが、まったくわからなかったのでお知恵をお貸しください。
OS:XP
VB2005
DBに登録しているテーブルをコンボボックスのリストに表示し、
そこから任意の値を選択したものをボタン押下時にDBに登録したいんです。
デザインのイメージは、テキストボックスとコンボボックスが混在していて、
そこに値を入れ、新規登録ボタンを押すとDBのテーブルへデータが登録されます。
登録してみたのですが、テキストボックスに入れたデータはすべて登録されているのですが、
コンボボックスに設定した値はDBには「NULL」として登録されてしまいます。
コンボボックスに設定した値をDBへ登録するにはどのようにすればいいでしょうか?
アドバイスをよろしくお願いします!
以下がコードになります。
Option Strict On
Imports System.Data.SqlClient
Imports System.Text.RegularExpressions
Imports System.Data.OleDb
Public Class Insert
Private Sub Insert_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, MyBase.Activated
'TODO: このコード行はデータを 'SRMDBDataSet.AaaTable' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.AaaTableTableAdapter.Fill(Me.SRMDBDataSet.AaaTable)
'TODO: このコード行はデータを 'SRMDBDataSet.BbbTable' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.BbbTableTableAdapter.Fill(Me.SRMDBDataSet.BbbTable)
'TODO: このコード行はデータを 'SRMDBDataSet.CccTable' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.CccTableTableAdapter.Fill(Me.SRMDBDataSet.CccTable)
'TODO: このコード行はデータを 'SRMDBDataSet.DddTable' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.DddTableTableAdapter.Fill(Me.SRMDBDataSet.DddTable)
Me.ActiveControl = Me.TextBox1
End Sub
Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click
Try
Dim con As New SqlConnection
Dim com As New SqlClient.SqlCommand
'Using con
'---<< 接続文字列の設定>>---
con.ConnectionString = _
"Data Source=.\SQLEXPRESS;" & _
"AttachDbFilename=" & _
"""G:\VB2008\Projects\AAA\BBB\DB.mdf"";" & _
"Integrated Security=True;" & _
"Connect Timeout=30;" & _
"User Instance=True"
'DBを開く
con.Open()
'---<< DBの接続状態を確認>>---
MessageBox.Show("Open")
com.Connection = con
com.CommandText = "INSERT INTO dbo.EeeTable (Aaa, Bbb, Ccc, Ddd, Eee, Fff, Ggg, Hhh, Iii, Jjj, Kkk, Lll, Mmm, Nnn, AddDT) " & _
"values(" & Q(TextBox1.Text) & ", " _
& Q(ComboBox2.Text) & ", " _
& Q(TextBox2.Text) & ", " _
& Q(ComboBox3.Text) & ", " _
& Q(TextBox3.Text) & ", " _
& Q(TextBox4.Text) & ", " _
& Q(TextBox5.Text) & ", " _
& Q(ComboBox4.Text) & ", " _
& Q(TextBox6.Text) & ", " _
& Q(TextBox7.Text) & ", " _
& Q(TextBox8.Text) & ", " _
& Q(TextBox9.Text) & ", " _
& Q(TextBox10.Text) & ", " _
& Q(ComboBox5.Text) & ", " _
& "GetDATE()" & ")"
com.ExecuteNonQuery()
con.Close()
MessageBox.Show("データの追加に成功しました")
TextBox1.Text = ""
ComboBox2.Text = ""
TextBox2.Text = ""
ComboBox3.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
ComboBox4.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
ComboBox5.Text = ""
Me.TextBox1.Focus()
'End Using
Catch ex As Exception
MessageBox.Show(ex.ToString, "接続テストで【例外発生】")
End Try
End Sub
Public Function Q(ByVal Text As String) As String
If (Text = "") Or (Text = " ") Then
Q = "NULL"
Else
Q = "'" & Replace(Text, "'", "''") & "'"
End If
End Function
End Class
|