我有一个带有odbc的存储过程的供应参数问题,这是我的程序:
Dim Command As New OdbcCommand
Dim oDataAdapter As New OdbcDataAdapter
Dim dbTrans As OdbcTransaction
Public NoNotax As String
Sub addBarangKeluar(ByVal kodeUser As String, ByVal totalJual As Long, ByVal totalDiskon As Long, ByVal totalJual2 As Long, ByVal bayar As Long, ByVal kembali As Long, ByVal kodeCust As String, ByVal odata As DataTable)
Dim i As Integer
Dim Nonota As String
Dim parameter As OdbcParameter
modKoneksi.bukaKoneksi()
DBTrans = modKoneksi.koneksi.BeginTransaction
command.Connection = modKoneksi.koneksidb
command.Transaction = DBTrans
command.CommandType = CommandType.StoredProcedure
Command.CommandText = "addMasterBarangKeluar "
Try
Command.Parameters.Add("@kodeUser", OdbcType.VarChar, 10, ParameterDirection.Input).Value = kodeUser
Command.Parameters.Add("@totalJual", OdbcType.BigInt, 20, ParameterDirection.Input).Value = totalJual
Command.Parameters.Add("@totalDiskon", OdbcType.BigInt, 20, ParameterDirection.Input).Value = totalDiskon
Command.Parameters.Add("@totalJual2", OdbcType.BigInt, 20, ParameterDirection.Input).Value = totalJual2
Command.Parameters.Add("@bayar", OdbcType.BigInt, 20, ParameterDirection.Input).Value = bayar
Command.Parameters.Add("@kembali", OdbcType.BigInt, 20, ParameterDirection.Input).Value = kembali
Command.Parameters.Add("@kodeCustomer", OdbcType.VarChar, 20, ParameterDirection.Input).Value = kodeCust
Command.Parameters.Add("@NoNOtanya", OdbcType.VarChar, 20)
Command.Parameters("@NoNOtanya").Direction = ParameterDirection.Output
Command.ExecuteNonQuery()
Nonota = Command.Parameters("@NoNOtanya").Value
Command.Parameters.Clear()
Command.CommandType = CommandType.Text
For i = 0 To odata.Rows.Count - 1
Command.CommandText = "exec addBarangKeluarDetil '" & Guid.NewGuid.ToString & "','" & Nonota & "','" & odata.Rows(i).Item(0) & "','" & odata.Rows(i).Item(1) & "','" & odata.Rows(i).Item(4) & "','" & odata.Rows(i).Item(3) & "','" & odata.Rows(i).Item(5) & "'"
Command.ExecuteNonQuery()
Next
NoNotax = Nonota
dbTrans.Commit()
Catch ex As Exception
dbTrans.Rollback()
MsgBox("Pesan Error : " + ex.Message, MsgBoxStyle.Critical, "Error !")
NoNotax = "0"
End Try
Command.Parameters.Clear()
modKoneksi.tutupKoneksi()
End Sub
当我运行此过程时,收到错误消息:
错误[42000] [Microsoft] [SQL Server Native Client 10.0] [SQL Server]过程或函数“addMasterBarangKeluar”需要参数'@kodeUser',它未提供。
我想我提供了所有参数。
有人可以帮帮我吗?
答案 0 :(得分:2)
尝试这样:
OdbcCommand ODBCCommand = new OdbcCommand("{call addMasterBarangKeluar (?)}", ODBCConnection);
ODBCCommand.CommandType = CommandType.StoredProcedure;
答案 1 :(得分:-1)
以下是答案:
GL_INVALID_OPERATION
存储过程名称将以这种方式写入glVertexAttribPointer
for Mysql,用于从后端调用该过程在Vb.net和C#
但是在Sql Server中我们只写:
OdbcCommand ODBCCommand = new OdbcCommand("{call addMasterBarangKeluar (?)}", ODBCConnection);
程序名称将直接写入。
这是代码正确并帮助我使用ODBC连接。