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

jarodzhao 2008-03-10 05:14:17

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()


为什么要用问号?!马上结贴
...全文
306 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
syjchyx 2008-03-10
  • 打赏
  • 举报
回复
系统会把上面Add进去的字符串,按顺序替换下面的?
sunrain_yingxi 2008-03-10
  • 打赏
  • 举报
回复
同意樓上
阿非 2008-03-10
  • 打赏
  • 举报
回复
占位符
octverve 2008-03-10
  • 打赏
  • 举报
回复
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 对象的顺序必须直接对应于该参数的问号占位符的位置

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧