討論區快速選單
知識庫快速選單
網路投保旅行平安險 最紅的App開發語言:Kotlin
[ 回上頁 ] [ 討論區發言規則 ]
enterprise library dataset update error
更改我的閱讀文章字型大小
作者 : junlin(junlin)
[ 貼文 16 | 人氣 3880 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/2/17 下午 12:59:27
我的DB是informix, 目前用enblib測試把Dataset的資料update到DB內, 但始終無法成功,
請問有人可以告訴我是什麼問題嗎?
source如下:

Database db = DatabaseFactory.CreateDatabase(DBList.SelectedItem.Text);
DbCommand cmd = db.GetSqlStringCommand("select col1, col2 from charles");
DataSet ds = db.ExecuteDataSet(cmd);
GridView1.DataSource = ds;
GridView1.DataBind();

DbCommand updateCmd = db.GetSqlStringCommand("update charles set col1=@1 where col2=@2");
db.AddInParameter(updateCmd, "@1", DbType.AnsiString, "col1", DataRowVersion.Current);
db.AddInParameter(updateCmd, "@2", DbType.Int32, "col2", DataRowVersion.Current);

ds.Tables[0].Rows[0]["col1"] = "XXXXXXXXX";
db.UpdateDataSet(ds, ds.Tables[0].TableName, null, updateCmd, null, UpdateBehavior.Transactional);

錯誤訊息為:ERROR [42000] [Informix .NET provider][Informix]A syntax error has occurred.
作者 : regionbbs(小朱)技術副站長 VB.Net曠世奇才SQL Server 7/2K卓越專家.Net Framework優秀好手C#曠世奇才ASP.Net一代宗師ADO.Net卓越專家貼文超過6000則人氣指數超過70000點
[ 貼文 6372 | 人氣 82299 | 評價 36440 | 評價/貼文 5.72 | 送出評價 59 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/2/17 下午 01:56:21
把你的UPDATE指令拿到Informix上去測,看訊息是SQL指令中有問題。
作者 : junlin(junlin)
[ 貼文 16 | 人氣 3880 | 評價 0 | 評價/貼文 0 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/2/17 下午 02:19:34
後來我發現sql語法內有@符號的僅適用於sql server, 在informix內好像不能這樣用,
所以我改成這樣
DbCommand updateCmd = db.GetSqlStringCommand("update charles set col1=? where col2=?");

但是這樣子的話, 我的Parameter name要怎麼改哩.
db.AddInParameter(updateCmd, "????", DbType.AnsiString);
db.AddInParameter(updateCmd, "????", DbType.Int32);

另外, 我想請問, 如果selectCmd的欄位和updateCmd不同時,
dataAdapter怎麼知道我的Parameter是要對應到DataTable內的哪個欄位呢?
DbCommand selectCmd = db.GetSqlStringCommand("select col1, col2, col3, col4, col5 from charles");
DbCommand updateCmd = db.GetSqlStringCommand("update charles set col1=? where col2=?");
db.AddInParameter(updateCmd, "????", DbType.AnsiString);
db.AddInParameter(updateCmd, "????", DbType.Int32);

 板主 : 小朱
 > ADO.NET - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - ADO.NET - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
ADO.NET
1 小朱 1520 
2 識丁 280 
3 吳馨琳 270 
4 小台 180 
5 Snaking 140 
6 mark 140 
7 好說 120 
8 ammon 100 
9 toyboy 70 
10 再見男人 50 
ADO.NET
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
2.929688E-02