vb.net odp.net/如何在insert中使用ExecuteOnQuery()?
以下代码出现错误:vb.net odp.net/如何在insert中使用ExecuteOnQuery()?,vb.net,odp.net,Vb.net,Odp.net,以下代码出现错误: Public Function Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim oradb As String = "Data Source=fbdata;User Id=fbtrain;Password=password;" Using conn As New OracleConnection(or
Public Function Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim oradb As String = "Data Source=fbdata;User Id=fbtrain;Password=password;"
Using conn As New OracleConnection(oradb)
Using cmd As New OracleCommand
conn.CreateCommand()
cmd.CommandText = "INSERT INTO BID " _
+ "(BID_ID, BID_NAME, BID_NAMEID, BID_STATUS, BID_FROM, BID_TO, BID_OWNER, NEW_USER, NEW_ZEIT, CHG_USER, CHG_ZEIT, AKTIV) VALUES " _
+ "(:1, :2, :2, '00', TO_DATE('01-JUL-16', 'DD-MON-RR'), TO_DATE('30-JUN-2099', 'DD-MON-RR'), '1', '1', SYSDATE, '1', SYSDATE, ' ')"
Dim pcountbid As New OracleParameter
pcountbid.OracleDbType = OracleDbType.Decimal
Dim pprname As New OracleParameter
pprname.OracleDbType = OracleDbType.Varchar2
pprname.Value = prname
pcountbid.Value = countbid
cmd.Parameters.Add(pcountbid)
cmd.Parameters.Add(pprname)
conn.Open()
Return cmd.ExecuteNonQuery()
End Using
End Using
End Function
错误是:
未处理InvalidOperationException
我所要做的就是绑定这些值并执行此查询以将数据插入到我的数据库中 使用“按位置绑定”模式(默认模式)时,正如您在此处所做的那样,必须按照SQL语句中显示的顺序将参数添加到
OracleParameterCollection
集合中。这意味着您实际上将有三个参数,即使其中两个参数是相同的(尽管我怀疑这是否真的是真的)。所以你的代码会变成这样
cmd.CommandText = "INSERT INTO BID " _
+ "(BID_ID, BID_NAME, BID_NAMEID, BID_STATUS, BID_FROM, BID_TO, BID_OWNER, NEW_USER, NEW_ZEIT, CHG_USER, CHG_ZEIT, AKTIV) VALUES " _
+ "(:1, :2, :3, '00', TO_DATE('01-JUL-16', 'DD-MON-RR'), TO_DATE('30-JUN-2099', 'DD-MON-RR'), '1', '1', SYSDATE, '1', SYSDATE, ' ')"
Dim pcountbid As New OracleParameter
pcountbid.OracleDbType = OracleDbType.Decimal '<- ID decimal or really Int32???
Dim pprname As New OracleParameter
pprname.OracleDbType = OracleDbType.Varchar2
Dim pprnameID As New OracleParameter
pprname.OracleDbType = OracleDbType.Int32 'change to whatever type you really need
pprname.Value = prname
pprnameID.Value = CInt(prname) 'change as needed
pcountbid.Value = countbid
cmd.Parameters.Add(pcountbid)
cmd.Parameters.Add(pprname)
cmd.Parameters.Add(pprnameID)
Dim pcountbid As New OracleParameter
pcountbid.OracleDbType = OracleDbType.Decimal '<- ID decimal or really Int32???
pcountbid.Value = countbid
cmd.Parameters.Add(pcountbid)
Dim pprname As New OracleParameter
pprname.OracleDbType = OracleDbType.Varchar2
pprname.Value = prname
cmd.Parameters.Add(pprname)
Dim pprnameID As New OracleParameter
pprname.OracleDbType = OracleDbType.Int32 'change to whatever type you really need
pprnameID.Value = CInt(prname) 'change as needed
cmd.Parameters.Add(pprnameID)
cmd.CommandText=“插入投标”_
+(投标ID、投标名称、投标名称ID、投标状态、投标发件人、投标收件人、投标所有人、新用户、新用户、CHG用户、CHG用户、AKTIV)值_
+(:1,:2,:3,'00',截止日期('2016年7月1日,'DD-MON-RR'),截止日期('2099年6月30日,'DD-MON-RR'),'1,'1',系统日期,'1',系统日期,'
Dim pcountbid作为新的OracleParameter
pcountbid.OracleDbType=OracleDbType.Decimal'我希望BID_NAME和BID_NAMEID具有来自prname的相同字符串值。但是,即使将十进制更改为int32并使用3组值进行绑定,相同的错误仍然存在。还有其他想法吗?@SamaanShameem你能展示一下你在投标表中使用的create语句吗?