討論區快速選單
知識庫快速選單
討論區最近新進100則主題 程式設計俱樂部Facebook粉絲團 軟體開發過程中有哪些資安漏洞?
[ 回上頁 ] [ 討論區發言規則 ]
asp.net 與access2003資料庫連接出問題
更改我的閱讀文章字型大小
作者 : kaoi(貓)
[ 貼文 4 | 人氣 1029 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 01:52:45
cute.mdb為access2003資料庫
user為其中的一個表格
當我執行下列程式他告訴我update錯誤,我不知道下面程式哪一段出錯了,不知道哪問大大可以回一下
     Dim connection As String
     connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/test/db/cute.mdb")
     Response.Write(connection)
     Dim conn As OleDb.OleDbConnection
     Dim objcmd As OleDb.OleDbCommand
     Dim count As Integer
     Dim strSql As String
     strSql = "UPDATE USER SET USER_ID='BBB',USER='BBB',PASSWORD='BBB'"
     conn = New OleDb.OleDbConnection(connection)
     conn.Open()
     objcmd = New OleDb.OleDbCommand(strSql, conn)
     objcmd.CommandTimeout = 45
     count = objcmd.ExecuteNonQuery()
     Response.Write(count.ToString)

     conn.Close()
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 02:05:55

>cute.mdb為access2003資料庫
>user為其中的一個表格
>當我執行下列程式他告訴我update錯誤,我不知道下面程式哪一段出錯了,不知道哪問大大可以回一下
> Dim connection As String
> connection = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' & Server.MapPath('/test/db/cute.mdb')
> Response.Write(connection)
> Dim conn As OleDb.OleDbConnection
> Dim objcmd As OleDb.OleDbCommand
> Dim count As Integer
> Dim strSql As String
> strSql = 'UPDATE USER SET USER_ID=''BBB'',USER=''BBB'',PASSWORD=''BBB'''
> conn = New OleDb.OleDbConnection(connection)
> conn.Open()
> objcmd = New OleDb.OleDbCommand(strSql, conn)
> objcmd.CommandTimeout = 45
> count = objcmd.ExecuteNonQuery()
> Response.Write(count.ToString)
>
> conn.Close()
你可不可以再UPDATE時加個WHERE不然應該會把主鍵USER_ID給改掉吧
這樣資料會有重複性問題吧
作者 : kaoi(貓)
[ 貼文 4 | 人氣 1029 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 02:10:26
感謝小台大大
我已經將UPDATE部份改為INSERT INTO
我執行的結果出現下列錯誤

INSERT INTO 陳述式的語法錯誤。
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外詳細資訊: System.Data.OleDb.OleDbException: INSERT INTO 陳述式的語法錯誤。

原始程式錯誤:


行 35: objcmd = New OleDb.OleDbCommand(strSql, conn)
行 36: objcmd.CommandTimeout = 45
行 37: count = objcmd.ExecuteNonQuery()
行 38: Response.Write(count.ToString)
行 39:
 
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 03:57:42
你的條件不可如下
USER=''BBB''
如果真的資料包含了[']
請改良為USER='''BBB'''
最外層一定要有個單引號
資料部份''代表'
作者 : kaoi(貓)
[ 貼文 4 | 人氣 1029 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 04:03:06
我將update改寫為 insert into指令如下
strSql = "INSERT into USER ( USER_ID,USER,PASSWORD ) VALUES ('BBB','BBB','BBB')"
跑出來的錯誤如樓上
謝謝
作者 : lolota(lolota) ASP.Net卓越專家貼文超過200則
[ 貼文 429 | 人氣 755 | 評價 2060 | 評價/貼文 4.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 04:53:45
引用小台大大的話如下:
(改良為USER='''BBB''',最外層一定要有個單引號)
========
顯然你的Insert 語法還是有錯....=.="...

作者 : kaoi(貓)
[ 貼文 4 | 人氣 1029 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 04:59:34
insert into user ( user_id,user,password ) values ( 'bbb','bbb','bbb')
雙引號為外層吧 我只是要將user_id 欄位給字串 bbb
我不知道.net1.1 ADO 與access2003的資料庫 連接是否有問題
作者 : toyboy(toyboy) 貼文超過200則人氣指數超過30000點
[ 貼文 438 | 人氣 37407 | 評價 1120 | 評價/貼文 2.56 | 送出評價 71 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 05:48:47
直接開Access的查詢設計界面,讓access自動幫你產生insert語法
這樣語法就不會錯了
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 05:54:40

>引用小台大大的話如下:
>(改良為USER='''BBB''',最外層一定要有個單引號)
>========
>顯然你的Insert 語法還是有錯....=.='...
>
>
後~~~我最受不了不懂裝懂的人來插花

如果你的資料為['BBB']
你丟給DB要改良成['''BBB''']
因為[']是保留字
就像VB中["]一樣
所以在VB中如果資料為["我愛你"]<==要丟到String
要如下
Dim S AS String="""我愛你"""

作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 06:04:07

>insert into user ( user_id,user,password ) values ( 'bbb','bbb','bbb')
>雙引號為外層吧 我只是要將user_id 欄位給字串 bbb
>我不知道.net1.1 ADO 與access2003的資料庫 連接是否有問題
>
我試過你的語法了沒問題~~
我一直以為用兩個單引號去刮資料
原來是討論區的BUG

好奇怪問題在哪邊!????
我以前有用過Access2003當ASP.NET的資料庫呀
比較容易碰過的問題是檔案被強佔
沒有這樣的問題

你有沒有更清楚的資訊
作者 : regionbbs(小朱)技術副站長 VB.Net曠世奇才SQL Server 7/2K卓越專家.Net Framework優秀好手C#曠世奇才ASP.Net一代宗師ADO.Net卓越專家貼文超過6000則人氣指數超過70000點
[ 貼文 6372 | 人氣 82299 | 評價 36440 | 評價/貼文 5.72 | 送出評價 59 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/11 下午 08:44:03
保留字問題 .
PASSWORD 是保留字 .
USER 也是保留字 .
作者 : lolota(lolota) ASP.Net卓越專家貼文超過200則
[ 貼文 429 | 人氣 755 | 評價 2060 | 評價/貼文 4.8 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/16 下午 01:59:45

>後~~~我最受不了不懂裝懂的人來插花
>
>如果你的資料為[''BBB'']
>你丟給DB要改良成[''''''BBB'''''']
>因為['']是保留字
>就像VB中[']一樣
>所以在VB中如果資料為['我愛你']<==要丟到String
>要如下
>Dim S AS String=''我愛你''
嗚嗚嗚~~ 對啦,我不懂啦 ~=.=~
我只是有個我先前使用的印象....
語法是放參數進去 : insert xxx set bn=' "& ban &" ' .....
當時沒仔細看咩~
我走.....(哭泣的走了..)
 板主 : 小朱
 > 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-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625