OleCommand的SqlText占位符的问题
http://blog.sina.com.cn/s/blog_54b576bb0100anku.html
在使用access數(shù)據(jù)時(shí),經(jīng)常使用
string strSql="insert table_name(col1,col2,...,coln) values(@col1,@col2,...,@coln)";
來(lái)向數(shù)據(jù)庫(kù)插入數(shù)據(jù),寫(xiě)法居然是有毛病的,參照msdn,應(yīng)該改為
string strSql="insert table_name(col1,col2,...,coln) values(?,?,...,?)";
來(lái)自msdn的解釋:
如果 CommandType 設(shè)置為 Text,OLE DB.NET 提供程序不支持將參數(shù)傳遞給 OleDbCommand 調(diào)用的 SQL 語(yǔ)句或存儲(chǔ)過(guò)程的命名參數(shù)。在這種情況下,必須使用問(wèn)號(hào) (?) 占位符。例如:
SELECT * FROM Customers WHERE CustomerID = ?
因此,OleDbParameterCollection 的順序必須直接對(duì)應(yīng)于參數(shù)的問(wèn)號(hào)占位符的位置。
?
NET中SQL的Parameter占位符的使用在一般的情況想在
一般的規(guī)則如下:
總結(jié)
以上是生活随笔為你收集整理的OleCommand的SqlText占位符的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tfs 点获取最新,如果检查到大量冲突
- 下一篇: 西裤哥的 Hook Api Lib 0.