日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OleDbCommand使用参数应该注意的地方

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OleDbCommand使用参数应该注意的地方 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近寫程序用到OleDbCommand的Parameter寫數據庫,遇到很多問題:

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 對象的順序必須直接對應于該參數的問號占位符的位置?

例如:

??????????????? string sql = "insert into T_Fundratesum(fundcode,yhcode,sumdate,period,m12brate,m12rrate,createtimestamp) values (?,?,?,?,?,?,?)";
??????????????? OleDbCommand comm = new OleDbCommand(sql, conn);
??????????????? comm.Parameters.Add(new OleDbParameter("@fundcode", OleDbType.VarChar));
??????????????? comm.Parameters[0].Value = dt.Rows[i]["yhcode"].ToString();
??????????????? comm.Parameters.Add(new OleDbParameter("@yhcode", OleDbType.VarChar));
??????????????? comm.Parameters[1].Value = dt.Rows[i]["fundcode"].ToString();
??????????????? comm.Parameters.Add(new OleDbParameter("@sumdate", OleDbType.Date));
??????????????? comm.Parameters[2].Value = DateTime.Now.ToString();
??????????????? comm.Parameters.Add(new OleDbParameter("@PERIOD", OleDbType.Double));
??????????????? comm.Parameters[3].Value = dt.Rows[i]["PERIOD"];
??????????????? comm.Parameters.Add(new OleDbParameter("@M12BRATE", OleDbType.Double));
??????????????? comm.Parameters[4].Value = dt.Rows[i]["M12BRATE"];
??????????????? comm.Parameters.Add(new OleDbParameter("@M12RRATE", OleDbType.Double));
??????????????? comm.Parameters[5].Value = dt.Rows[i]["M12RRATE"];
??????????????? comm.Parameters.Add(new OleDbParameter("@createtimestamp", OleDbType.VarChar));
??????????????? comm.Parameters[6].Value = DateTime.Now.ToString();

當然還有最笨的辦法就是,定義一個字符串,然后將其里面的參數用string.replace替換。

我從網上查到一個網友的回復如下:我想應該是這樣的

1.SqlCommand should be '@' character?
2.OleDbCommand or OdbcCommand should be '?' character?
3.OracleCommand should be ':' character

唉,這些Command的不便利性使得用戶在使用時常常摸不到頭腦,不同的command有不同的參數格式設置,以后應該多多注意。

轉載于:https://www.cnblogs.com/xrtd/p/3703393.html

總結

以上是生活随笔為你收集整理的OleDbCommand使用参数应该注意的地方的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。