1

LINQ VB.NETを試しましたが、データベースに挿入しないで動作します

この行".CommandText= sqlAdd"

メッセージエラーオブジェクト参照がオブジェクトのインスタンスに設定されていません。

Imports System
Imports System.Configuration
Imports System.Globalization
Imports System.Data
Imports System.Data.SqlClient
Imports System.Text

Public Class _1_1Invoice
    Dim db As New assetDataContext()
    Dim Conn As SqlConnection
    Dim cmd As SqlCommand
    Dim tr As SqlTransaction
    Dim sb As New StringBuilder()

Private Sub btSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSave.Click

        If MessageBox.Show("Do you want insert invoice?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            tr = Conn.BeginTransaction()

            sb.Remove(0, sb.Length)
            sb.Append("INSERT INTO tbl_AsInvoice (Poid)")
            sb.Append(" VALUES (@Poid)")
            Dim sqlAdd As String = sb.ToString()

            With cmd
                .CommandText = sqlAdd
                .CommandType = CommandType.Text
                .Connection = Conn
                .Transaction = tr
                .Parameters.Clear()
                .Parameters.Add("@Poid", SqlDbType.VarChar).Value = txtPoid.Text.Trim()
                .ExecuteNonQuery()
            End With
            tr.Commit()
            MessageBox.Show("Succesfull", "Done", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        End If

お時間をいただきありがとうございます:)

4

2 に答える 2

1

cmdなんでもない。あなたはそれを初期化する必要があります:

cmd = New SqlCommand()
于 2012-10-13T18:33:13.417 に答える
0

初期化していないcmdため、初期化されておりNothing、そのプロパティにアクセスできません。新しいものを作成し、SqlCommandそれに割り当てる必要がありますcmd

cmd = New SqlCommand()
With cmd
    ...
End With
于 2012-10-13T18:34:39.917 に答える