成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個@符號引發(fā)的血案:Access數(shù)據(jù)庫無法更新

數(shù)據(jù)庫 其他數(shù)據(jù)庫
本文將討論一個Access數(shù)據(jù)庫不能更新的問題,最后作者找到了引發(fā)血案的罪魁禍首——@符號,原因請看文內詳解。

在昨天下午就遇到了這個問題,但是調試一直都能成功,但是數(shù)據(jù)卻總是沒有更新。在網(wǎng)上搜索了下,這方面的東西還是挺少的,可能是因為Access數(shù)據(jù)庫用得少,或者是在更新的時候使大多人不用參數(shù)方式的原因吧,今天我把我的經(jīng)歷記錄一下吧。以后也可以做參考。

原來有誤的代碼:

  1. StringBuilder strSql = new StringBuilder();  
  2. strSql.Append("update news_Table set ");   
  3.  strSql.Append("NewsTitle=@NewsTitle,");  
  4.  strSql.Append("NewsContent=@NewsContent,");   
  5.  strSql.Append("NewsReporter=@NewsReporter");     
  6. strSql.Append(" where NewsID=@NewsID ");  
  7. OleDbParameter[] parameters = {     
  8.  new OleDbParameter("@NewsID", OleDbType.Integer,4),    
  9. new OleDbParameter("@NewsTitle", OleDbType.VarChar),    
  10.  new OleDbParameter("@NewsContent", OleDbType.VarChar),    
  11. new OleDbParameter("@NewsReporter", OleDbType.VarChar)};  
  12.  parameters[0].Value = model.NewsID;   
  13. parameters[1].Value = model.NewsTitle;  
  14. parameters[2].Value = model.NewsContent;   
  15. parameters[3].Value = model.NewsReporter;    
  16. return DbHelperOleDb.ExecuteSql(strSql.ToString(), parameters); 

因為這個代碼是使用動軟代碼生成器自動生成的,所以我可以肯定代碼是無誤的,可是問題出在我修改了參數(shù),自動生成的代碼里包含可以更新ID,我數(shù)據(jù)庫里的ID是自動增長的,所以不能更新,我也就直接刪除了ID,變成上面的錯誤代碼。就這樣,問題就出來啦,不管我如何調試,都無濟于事,始終不能更新到數(shù)據(jù)庫。

在琢磨很久之后,換成更加不同的方式來更新數(shù)據(jù)庫,也就是不使用@傳參數(shù),直接使用++方式的代碼。

++方式的代碼:

  1. string strSql;  
  2. strSql="update news_Table 
  3. set NewsTitle='"+model.NewsTitle+"',NewsContent='"+model.NewsContent+"',NewsReporter='"+   
  4. model.NewsReporter+"'  where NewsID="+model.NewsID;    
  5. return DbHelperOleDb.ExecuteSql(strSql); 

使用這種方式可以很順利的更新數(shù)據(jù)庫里的數(shù)據(jù)。

這樣的結果讓我很抓狂。我不知道該怎么辦好,我想不通為什么傳參數(shù)的方式不行,但是直接寫的方式就可以。接著就是我瘋狂地在Google上搜索的這方面的資料,但是搜到這方面和我同樣的問題的日志不多。但是還是有解決這個問題的解決方案,那就是參數(shù)賦值順序和傳入的時候一致,下面貼出正確的代碼:

正確傳參數(shù)的代碼:

  1. StringBuilder strSql = new StringBuilder();  
  2.  strSql.Append("update news_Table set ");  
  3.  strSql.Append("NewsTitle=@NewsTitle,");   
  4.   strSql.Append("NewsContent=@NewsContent,");  
  5.   strSql.Append("NewsReporter=@NewsReporter");  
  6.   strSql.Append(" where NewsID=@NewsID ");   
  7.  OleDbParameter[] parameters = {   
  8. new OleDbParameter("@NewsTitle", OleDbType.VarChar),    
  9. new OleDbParameter("@NewsContent", OleDbType.VarChar),    
  10. new OleDbParameter("@NewsReporter", OleDbType.VarChar),    
  11. new OleDbParameter("@NewsID", OleDbType.Integer,4)};    
  12. parameters[0].Value = model.NewsTitle;    
  13. parameters[1].Value = model.NewsContent;   
  14.  parameters[2].Value = model.NewsReporter;    
  15. parameters[3].Value = model.NewsID;     
  16. return DbHelperOleDb.ExecuteSql(strSql.ToString(), parameters); 

只是參數(shù)順序改變了一下就可以正常更新Access數(shù)據(jù)庫啦,也許這應該是Access的一個Bug吧,也許Access本來就如此,比MSSQL語法要嚴格。

總結

Access和MSSQL還是有不同的,不能夠一味的按照MSSQL的方式去解決Access上的問題,只是有一些相同。

原文標題:Access使用參數(shù)方法更新數(shù)據(jù)庫的問題

鏈接:http://www.cnblogs.com/Jane_Wang/archive/2010/08/07/1794845.html

【編輯推薦】

  1. Access文件導入SQL Server錯誤代碼破解思路
  2. Access數(shù)據(jù)導入Mysql數(shù)據(jù)庫的實際操作
  3. 在ACCESS中調用后臺存儲過程
  4. 利用C#遠程存取Access數(shù)據(jù)庫
  5. SQL Server數(shù)據(jù)復制到的Access很簡單!

 

 

責任編輯:彭凡 來源: 博客園
相關推薦

2021-07-27 07:12:11

Getter接口Setter

2021-12-01 06:59:27

架構

2011-04-19 11:41:03

Access數(shù)據(jù)庫

2011-07-06 14:09:40

ASP

2018-11-22 15:50:27

MySQL數(shù)據(jù)庫雙引號

2021-01-25 08:08:22

APP機器人KOB

2017-05-22 08:35:07

MySQL雙引號錯位

2021-02-01 10:42:47

MySQL雙引號數(shù)據(jù)庫

2017-08-25 16:38:05

表達式正則血案

2017-03-20 19:40:29

AndroidSwipeRefres下拉刷新

2021-01-11 05:30:04

Boot 單機片

2012-02-13 09:42:41

備份服務器數(shù)據(jù)中心

2011-02-28 09:31:30

HashtableHashMap

2015-02-04 14:36:07

格式串漏洞Ghost漏洞安全漏洞

2011-11-25 13:04:43

空格usr

2019-09-09 08:30:57

MYSQL代碼數(shù)據(jù)庫

2011-07-20 17:02:51

Oracle數(shù)據(jù)庫

2023-01-11 08:41:47

微服務循環(huán)依賴

2020-01-06 09:43:14

賠償TSB遷移

2011-07-20 13:40:00

SQLite數(shù)據(jù)庫查詢數(shù)據(jù)
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人视屏在线观看 | 九九久久久 | www.国产精 | 国产99热 | 亚洲精品一区二区三区丝袜 | 2019精品手机国产品在线 | 欧美日韩不卡 | 风间由美一区二区三区在线观看 | 亚洲五码久久 | 国产一级网站 | 日韩精品中文字幕在线 | 国产美女精品视频 | 免费天天干 | 黄色大片在线播放 | 免费a网站 | 国产成人免费视频 | 精品免费视频一区二区 | av一级久久 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 国产成人免费视频网站高清观看视频 | 国产jizz女人多喷水99 | 国产精品久久久久久久久久久久 | 99久久久无码国产精品 | 欧美一区在线视频 | 特黄小视频 | 国产精品国产三级国产aⅴ入口 | 久久精品国产一区老色匹 | 欧美精品片 | 爱操av | 亚洲精品免费视频 | 国产精品视频一区二区三区 | 最新中文字幕在线播放 | 九九九久久国产免费 | 欧美v日韩v | 精品久久久久久久人人人人传媒 | 午夜影院在线观看 | 一区二区三区视频免费观看 | 成人午夜精品一区二区三区 | 午夜精品三区 | 欧美成人高清视频 | 一区二区精品电影 |