国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ADO.NET 使用中 BUG 匯報之一[使用OleDb操作SQL SERVER]

2024-07-10 13:02:45
字體:
來源:轉載
供稿:網友

商業源碼熱門下載www.html.org.cn

我們先看一下下面代碼

string str="update  testtable set totalcount= totalcount+1   where [email protected]";

//得到數據庫連接(使用一個靜態方法)
oledbconnection myconn=sohotool.setconn();

try
{
     myconn.open();    
     oledbcommand cmd = new oledbcommand(str, myconn);
     cmd.parameters.add(new oledbparameter("@name" , oledbtype.varchar  , 15));
     cmd.parameters["@name"].value = "貝貝" ;

     cmd.executenonquery() ;
}
catch{
    ...
}
finally{
    ...
}

    上面我們是使用的oledb來操作數據庫的,朋友們看看能否找到什么問題?

    呵呵,好象真的沒有問題哦,不過就是這樣的代碼,如果用來操作非sql server的話確實是沒有問題[筆者用了access做試驗確實通過].

    不過我們都知道使用oledb不只能操作access等數據庫,還包括sql server數據庫的.現在我們把上面的操作轉移到sql server數據庫上,問題馬上就發現了,同樣的代碼,系統會提示:"必須定義@name變量"

    我們可以在用這樣的代碼來對sql server數據庫進行測試:

string str="update  testtable set totalcount= totalcount+1   where [email protected]";

//得到數據庫連接(使用一個靜態方法)
sqlconnection myconn=sohotool.setconn();

try
{
     myconn.open();    
     sqlcommand cmd = new sqlcommand(str, myconn);
     cmd.parameters.add(new sqlparameter("@name" , sqldbtype.varchar  , 15));
     cmd.parameters["@name"].value = "貝貝" ;

     cmd.executenonquery() ;
}
catch{
    ...
}as
finally{asdf
    ...
}


代碼結構一點都沒有變,不過是把oledb的那些東西全部換成了sqlclient對象的寫法,結果...程序通過.


值得說明的一點是,對于第一段代碼,如果我們不使用上面的格式,而是直接使用
string str="update testtable set totalcount = totalcount + 1 where name='貝貝'";
即使是使用oledb,也可以正常操作包括sql server在內的所有數據庫. 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瓦房店市| 五家渠市| 莱州市| 永善县| 天门市| 朝阳区| 吉木乃县| 岑溪市| 尼木县| 平乡县| 慈利县| 自贡市| 东山县| 乾安县| 苏尼特右旗| 成武县| 巩义市| 夏河县| 河池市| 宕昌县| 遂川县| 渭源县| 珲春市| 庆阳市| 弥渡县| 西盟| 芷江| 寻乌县| 龙海市| 四子王旗| 藁城市| 崇明县| 桐柏县| 丽江市| 安多县| 息烽县| 怀仁县| 资兴市| 尤溪县| 舒兰市| 怀仁县|