首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

这段代码中的问号(?)是什么意思?该如何解决

2012-01-29 
这段代码中的问号(?)是什么意思?VB.NET codecmdSQL.Parameters.Clear()cmdSQL.Parameters.Add(@text, Ol

这段代码中的问号(?)是什么意思?

VB.NET code
 
            cmdSQL.Parameters.Clear()
            cmdSQL.Parameters.Add("@text", OleDbType.WChar).Value = txtText.Text
            cmdSQL.Parameters.Add("@user", OleDbType.WChar).Value = lbName.Text
            cmdSQL.Parameters.Add("@score", OleDbType.Integer).Value = intScore
            cmdSQL.Parameters.Add("@firsttime", OleDbType.Date).Value = nowTime
            cmdSQL.Parameters.Add("@lasttime", OleDbType.Date).Value = nowTime
            cmdSQL.Parameters.Add("@body", OleDbType.WChar).Value = txtBody.Text
            cmdSQL.Parameters.Add("@state", OleDbType.WChar).Value = strState
            cmdSQL.Parameters.Add("@type", OleDbType.WChar).Value = strTypeID

            cmdSQL.CommandText = "INSERT INTO topic([text], [user], score, rep, firsttime, lasttime, body, state, type)" & _
                                " VALUES(?,?,?,0,?,?,?,?,?)"
            cmdSQL.ExecuteNonQuery()


为什么要用问号?!马上结贴

[解决办法]
1、OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序不支持用于将参数传递到 SQL 语句或存储过程的命名参数。在此情况下,必须使用问号 (?) 占位符,如以下示例所示。SELECT * FROM Customers WHERE CustomerID = ?

2、将参数用于 OleDbCommand 或 OdbcCommand 时,向 Parameters 集合中添加参数的顺序必须与存储过程中所定义的参数顺序相匹配。OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序将存储过程中的参数视为占位符,并且将按顺序使用这些参数值。另外,返回值参数必须是添加到 Parameters 集合中的第一批参数。
因此,向 Parameters 集合添加 Parameter 对象的顺序必须直接对应于该参数的问号占位符的位置

[解决办法]
占位符

热点排行