sql >> データベース >  >> RDS >> Sqlserver

VBNetを使用してSQLServerにデータを挿入するにはどうすればよいですか

    これは、VALUESで指定された値の数を意味します INSERTの句 ステートメントは、テーブルの列の総数と等しくありません。選択した列にのみ挿入する場合は、列名を指定する必要があります。

    もう1つは、ADO.Netを使用しているためです。 、SQL Injectionを回避するために常にクエリをパラメータ化 。あなたが今していることは、あなたが敗北しているということです。 sqlCommandの使用 。

    ex

    Dim query as String = String.Empty
    query &= "INSERT INTO student (colName, colID, colPhone, "
    query &= "                     colBranch, colCourse, coldblFee)  "
    query &= "VALUES (@colName,@colID, @colPhone, @colBranch,@colCourse, @coldblFee)"
    
    Using conn as New SqlConnection("connectionStringHere")
        Using comm As New SqlCommand()
            With comm
                .Connection = conn
                .CommandType = CommandType.Text
                .CommandText = query
                .Parameters.AddWithValue("@colName", strName)
                .Parameters.AddWithValue("@colID", strId)
                .Parameters.AddWithValue("@colPhone", strPhone)
                .Parameters.AddWithValue("@colBranch", strBranch)
                .Parameters.AddWithValue("@colCourse", strCourse)
                .Parameters.AddWithValue("@coldblFee", dblFee)
            End With
            Try
                conn.open()
                comm.ExecuteNonQuery()
            Catch(ex as SqlException)
                MessageBox.Show(ex.Message.ToString(), "Error Message")
            End Try
        End Using
    End USing 
    

    PS:クエリで指定された列名をテーブルにある元の列に変更してください。



    1. SQLServerでネストされたcaseステートメントロジックを実行するための最良の方法

    2. 複数のテーブルからcount(*)を選択します

    3. OracleデータベースでSELECTINTOステートメントを使用して一括収集句を使用する方法

    4. 読み取り専用のOracleホーム