gpt4 book ai didi

.net - ExecuteReader时"Parameter ?_1 has no default value"错误

转载 作者:行者123 更新时间:2023-12-02 15:33:54 25 4
gpt4 key购买 nike

Web 服务中的以下代码有问题。已经搜索了解决方案,但我所看到的似乎与我在下面所做的没有什么不同。

注意:字符串变量“AccountNo”被传递到包含以下代码的函数中。

错误发生在最后一行代码 - ExecuteReader。

    Dim sConnString As String
Dim rdr As OleDbDataReader
Dim orderPaid As Decimal
Dim fbeused As Decimal

sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\orders.mdb'"

Dim conn As New OleDbConnection(sConnString)

Dim sb As New StringBuilder
sb.Append("SELECT DISTINCTROW OrderHeaders.Accountno, Sum(([paidqty]*[unitprice])*[orderheaders].[entpercent]/100) AS orderpaid, Sum([freeqty]*[unitprice]) AS fbeused")
sb.Append(" FROM OrderHeaders INNER JOIN OrderDetails ON OrderHeaders.[OrderNo] = OrderDetails.[OrderNo]")
sb.Append(" GROUP BY OrderHeaders.Accountno HAVING OrderHeaders.Accountno=?")
Dim sqlString As String = sb.ToString

Dim cmd As New OleDbCommand(sqlString, conn)
cmd.CommandType = CommandType.Text
'cmd.Parameters.AddWithValue("AccNo", AccountNo)
cmd.Parameters.Add("AccNo", OleDbType.VarWChar).Value = AccountNo
conn.Open()

rdr = cmd.ExecuteReader()

我得到的错误是(如上所述)

Parameter ?_1 has no default value

最佳答案

遗憾的是,StackOverflow 目前在 Google 中搜索涉及的前两个结果

Parameter ?_ has no default value

他们都让提问者回来并说他们的原始问题或他们的测试数据或其他任何东西都存在缺陷(尽管提问者回来检查很棒)。

Marc Gravell 提供了此错误的解释(在正常情况下会遇到)here :

Parameters with a .Value of null are not passed. At all.

You need to pass DBNull.Value instead to pass a semantic null. For example:

com.Parameters.Add("@p7", OleDbType.Char, 255).Value =
((object)values7[0]) ?? DBNull.Value; (etc)

关于.net - ExecuteReader时"Parameter ?_1 has no default value"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com