国产探花免费观看_亚洲丰满少妇自慰呻吟_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在內的所有數據庫. 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉峪关市| 泉州市| 厦门市| 梓潼县| 滨海县| 鄢陵县| 洱源县| 油尖旺区| 邵武市| 宁化县| 滁州市| 高尔夫| 泰来县| 泸州市| 习水县| 福泉市| 淳安县| 余姚市| 汉阴县| 西林县| 洪洞县| 云浮市| 五家渠市| 盐津县| 武城县| 桑日县| 威宁| 高淳县| 慈溪市| 赤峰市| 深泽县| 兴安盟| 沁水县| 公安县| 德格县| 龙口市| 专栏| 德清县| 菏泽市| 伊吾县| 普陀区|