
前提・実現したいこと
VB.netでSQLServerのDataBaseを追加/取得して、データを参照するアプリを開発しています。13個もTextBoxのデータ(Text型が10個、data型が3個)を読み込んで、ExecuteNonQuery()でDataBaseにレコードを追加する際に、下記のエラーが発生します。SQL serverをはじめて使うので、初歩的なミスの可能性が高いと思いますが、行き詰まっているので、なにか対応方法をご教示願えませんでしょうか。
発生している問題・エラーメッセージ
System.Data.SqlClient.SqlException: '列名 'ID_906' が無効です。
列名 'project' が無効です。
列名 '名前' が無効です。
マルチパート識別子 "namae.pana" をバインドできませんでした。
列名 'TextBox5' が無効です。
列名 'TextBox6' が無効です。
列名 'TextBox7' が無効です。
列名 'TextBox8' が無効です。
列名 'TextBox9' が無効です。
列名 'TextBox10' が無効です。
該当のソースコード
VB.Net
Private Sub Go_Button_Click(sender As Object, e As RoutedEventArgs) Handles Go_Button.Click Dim cn As New SqlConnection Dim cd As New SqlCommand Dim SQL As String Dim St As String Dim impDate(3) As Date 'データベース接続 St = "Server=""PC-PA1709C0127R\SQLEXPRESS01"";" St &= "integrated security=SSPI;" St &= "initial catalog = theme" cn.ConnectionString = St cn.Open() 'TextBox のdateデータ取得 impDate(1) = CDate(TextBox11.Text) impDate(2) = CDate(TextBox12.Text) impDate(3) = CDate(TextBox13.Text) 'TextBoxのTextデータの変換 Dim l1 As Integer = TextBox1.Text.Length Dim impChar1 As Char() = TextBox1.Text.ToCharArray(0, l1) l1 = TextBox2.Text.Length Dim impChar2 As Char() = TextBox2.Text.ToCharArray(0, l1) l1 = TextBox3.Text.Length Dim impChar3 As Char() = TextBox3.Text.ToCharArray(0, l1) l1 = TextBox4.Text.Length Dim impChar4 As Char() = TextBox4.Text.ToCharArray(0, l1) l1 = TextBox5.Text.Length Dim impChar5 As Char() = TextBox5.Text.ToCharArray(0, l1) l1 = TextBox6.Text.Length Dim impChar6 As Char() = TextBox6.Text.ToCharArray(0, l1) l1 = TextBox7.Text.Length Dim impChar7 As Char() = TextBox7.Text.ToCharArray(0, l1) l1 = TextBox8.Text.Length Dim impChar8 As Char() = TextBox8.Text.ToCharArray(0, l1) l1 = TextBox9.Text.Length Dim impChar9 As Char() = TextBox9.Text.ToCharArray(0, l1) l1 = TextBox10.Text.Length Dim impChar10 As Char() = TextBox10.Text.ToCharArray(0, l1) 'SQL文生成 SQL = "" SQL &= "INSERT INTO dbo.テーマ情報" SQL &= "(" SQL &= " themeNo," SQL &= " themeName," SQL &= " Charge," SQL &= " address," SQL &= " boss1," SQL &= " address1," SQL &= " boss2," SQL &= " address2," SQL &= " folder," SQL &= " Examination documents," SQL &= " start," SQL &= " end," SQL &= " Review" SQL &= ")" SQL &= "VALUES" SQL &= "(" SQL &= impChar1 SQL &= "," SQL &= impChar2 SQL &= "," SQL &= impChar3 SQL &= "," SQL &= impChar4 SQL &= "," SQL &= impChar5 SQL &= "," SQL &= impChar6 SQL &= "," SQL &= impChar7 SQL &= "," SQL &= impChar8 SQL &= "," SQL &= impChar9 SQL &= "," SQL &= impChar10 SQL &= "," SQL &= impDate(1) SQL &= "," SQL &= impDate(2) SQL &= "," SQL &= impDate(3) SQL &= ")" MsgBox(SQL) 'SQLコマンド設定 cd.CommandText = SQL cd.Connection = cn cd.ExecuteNonQuery() 'クローズ解放 cd.Dispose() cn.Close() cn.Dispose() End Sub
試したこと
初期のテーブルをexlsからインポートしていて、Textのデータ型が「nvarchar(50)」になっているので上記構文ですが、データ型をMicrosoft SQL Server Management Studio 18でText型に変更して、Text Dataをそのまま使用しても同様のエラーが発生します。
補足情報(FW/ツールのバージョンなど)
Visual Studio 2019
.Net Framework 4.8






回答1件
あなたの回答
tips
プレビュー