討論區快速選單
知識庫快速選單
軟體開發過程中有哪些資安漏洞? 討論區最近新進100則主題 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
"儲存"問題
更改我的閱讀文章字型大小
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/30 下午 03:45:56
以下是小弟"儲存"的程式碼,每次按儲存後,都跳到這行"Catch ex As Exception"
,並顯示與sql內的限制(我有設某些欄位限制)衝突,但我都確定控制項輸入值是正確的且.sql內的語法都是正確,然而我都把sql內的限制都砍掉了,執行後仍是可以儲存,但都是預設值,想請教是哪些地方要檢查或是等等~thx

Case "儲存"
Try
Dim changedDataSet As DataSet = ds.GetChanges
If changedDataSet Is Nothing Then
MessageBox.Show("您並未進行任何變更", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
da.Fill(ds, "pkt")
enueditmode = editmode.none
checkstatus()
Exit Sub
End If
If MessageBox.Show("您真的要儲存此筆資料嗎?", "請確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
If changedDataSet.HasErrors Then
MessageBox.Show("仍然有資料列存在錯誤,無法接受異動。", "請注意", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
da.Update(changedDataSet, "pkt")
dt.AcceptChanges()
MessageBox.Show("成功地寫回來源資料表「pkt」", "提示訊息", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
enueditmode = editmode.none
checkstatus()
Catch dbcx As DBConcurrencyException
createMessage(dbcx)
Catch ex As Exception ->都跳到這行
MessageBox.Show(ex.Message, "請注意")
End Try
da.Fill(ds, "pkt")
enueditmode = editmode.none
checkstatus()
作者 : pclub(識丁) VB.Net優秀好手C#優秀好手ASP.Net優秀好手貼文超過1000則
[ 貼文 1040 | 人氣 8390 | 評價 3800 | 評價/貼文 3.65 | 送出評價 8 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 上午 07:22:07
怎麼確定 "sql 內的語法都是正確"? 是自訂的 da.InsertCommand 還是將 InsertCommand 列出來看的?

感覺上, 還是 InsertCommand 的問題

作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 上午 09:36:28
我都列出~麻煩你了~
---------
create table pkt /*包裹主檔*/
(
 包裹編號 char(10) constraint PK_包裹編號 primary key check
 (包裹編號 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),/*包裹編號-ex:0000000001*/
 包裹名稱 char(20) not null, /*包裹名稱*/
 收貨日 datetime default getdate(), /*收貨日-抓系統時間*/
 預定配達日期 datetime, /*預定配達日期*/
 指定配達時段 int default (1) constraint CK_指定配達時段 check
 (指定配達時段 between 1 and 4), /*指定配達時段-1不指定 2中午前 3 1200-1700 4 1700-2000*/
 包裹種類 int default (1) constraint CK_包裹種類 check
 (包裹種類 between 1 and 3), /*包裹種類-1一般 2易碎 3精密儀器*/
 發送站編號 char(2) not null check (發送站編號 like '[0][1]'
 or 發送站編號 like '[0][2]'), /*發送站編號-01(東區) or 02(西區)*/
 送達狀態 bit default (0), /*送達狀態-0未送達且預設 1已送達*/
 /*driver_id char(4) not null,*/ /*司機編號-我的模組-用不到~俊偉你要自己建一
 個*/
 包裹尺寸 char(2) check (包裹尺寸 like '[6][0]'
 or 包裹尺寸 like '[9][0]'), /*包裹尺寸-60 or 90 兩種*/
 包裹運費 int check
 (包裹運費 =100 or 包裹運費 =150), /*包裹運費-100 or 150*/

收_姓 char(10) not null, /*收件者的姓*/
 收_名 char(10) not null, /*收件者的名*/
 收_區碼 char(2) default ('02'), /*收件者電話的區碼*/
 收_號碼 char(8) not null check (收_號碼 like
 '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), /*收件者電話的號碼*/
 收_手機號碼 char(10) not null check (收_手機號碼 like
 '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), /*收件者手機號碼*/
 收_郵遞區號 int check (收_郵遞區號 = 111 or 收_郵遞區號 =103 or 收_郵遞區號 =106
 or 收_郵遞區號 =104 or 收_郵遞區號 =100 or 收_郵遞區號 =114 or 收_郵遞區號 =116
 or 收_郵遞區號 =112 or 收_郵遞區號 =105 or 收_郵遞區號 =110 or 收_郵遞區號 =115 or
 收_郵遞區號 =108), /*收件者的郵遞區號*/
 收_縣市 char(6) not null, /*收件者住的縣市*/
 收_鄉鎮市區 char(6), /*收件者住的鄉鎮市區*/
 收_里村 char(8), /*收件者住的里村*/
 收_鄰 int, /*收件者住的鄰*/
 收_路街 char(10), /*收件者住的路街*/
 收_巷 int, /*收件者住的巷*/
 收_號 int, /*收件者住的號*/
 收_弄 int, /*收件者住的弄*/
 收_樓 int, /*收件者住的樓*/
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 上午 09:38:22
接上頁
-------
寄_姓名 char(10) not null, /*寄件者的姓名*/
 寄_郵遞區號 int check (寄_郵遞區號 = 111 or 寄_郵遞區號 =103 or 寄_郵遞區號 =106
 or 寄_郵遞區號 =104 or 寄_郵遞區號 =100 or 寄_郵遞區號 =114 or 寄_郵遞區號 =116
 or 寄_郵遞區號 =112 or 寄_郵遞區號 =105 or 寄_郵遞區號 =110 or 寄_郵遞區號 =115 or
 寄_郵遞區號 =108), /*寄件者的郵遞區號*/
 寄_地址 char(50) not null, /*寄件者的地址*/
 寄_區碼 char(2) default ('02'), /*寄件者電話的區碼*/
 寄_號碼 char(8) not null check (寄_號碼 like
 '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'), /*寄件者電話的號碼*/
 寄_手機號碼 char(10) not null check (寄_手機號碼 like
 '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') /*寄件者手機號碼*/
)
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 上午 09:39:12

' 設定 insert 陳述式中的各個參數
' 包裹
da.InsertCommand.Parameters.Add("@packet_id", SqlDbType.NVarChar, 10, "包裹編號")
     da.InsertCommand.Parameters.Add("@packet_name", SqlDbType.NVarChar, 20, "包裹名稱")
     da.InsertCommand.Parameters.Add("@receive_date", SqlDbType.DateTime)
     da.InsertCommand.Parameters("@receive_date").SourceColumn = "收貨日"
     da.InsertCommand.Parameters.Add("@deliver_date", SqlDbType.DateTime)
     da.InsertCommand.Parameters("@deliver_date").SourceColumn = "預定配達日期"

     da.InsertCommand.Parameters.Add("@deliver_phase", SqlDbType.Int)
     da.InsertCommand.Parameters("@deliver_phase").SourceColumn = "指定配達時段"

     da.InsertCommand.Parameters.Add("@packet_category", SqlDbType.Int)
     da.InsertCommand.Parameters("@packet_category").SourceColumn = "包裹種類"

     da.InsertCommand.Parameters.Add("@station_id", SqlDbType.NVarChar, 2, "發送站編號")
     da.InsertCommand.Parameters.Add("@deliver_state", SqlDbType.Bit)
     da.InsertCommand.Parameters("@deliver_state").SourceColumn = "送達狀態"

     da.InsertCommand.Parameters.Add("@packet_size", SqlDbType.NVarChar, 2, "包裹尺寸")
     da.InsertCommand.Parameters.Add("@packet_money", SqlDbType.Int)
     da.InsertCommand.Parameters("@packet_money").SourceColumn = "包裹運費"
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 上午 09:39:51
' 收件者
     da.InsertCommand.Parameters.Add("@rec_firstname", SqlDbType.NVarChar, 10, "收_姓")
     da.InsertCommand.Parameters.Add("@rec_lastname", SqlDbType.NVarChar, 10, "收_名")
     da.InsertCommand.Parameters.Add("@rec_areacode", SqlDbType.NVarChar, 2, "收_區碼")
     da.InsertCommand.Parameters.Add("@rec_localnumber", SqlDbType.NVarChar, 8, "收_號碼")
     da.InsertCommand.Parameters.Add("@rec_cellphone", SqlDbType.NVarChar, 10, "收_手機號碼")
     da.InsertCommand.Parameters.Add("@rec_zip", SqlDbType.Int)
     da.InsertCommand.Parameters("@rec_zip").SourceColumn = "收_郵遞區號"
     da.InsertCommand.Parameters.Add("@rec_city", SqlDbType.NVarChar, 6, "收_縣市")
     da.InsertCommand.Parameters.Add("@rec_area", SqlDbType.NVarChar, 6, "收_鄉鎮市區")
     da.InsertCommand.Parameters.Add("@rec_dorp", SqlDbType.NVarChar, 8, "收_里村")
     da.InsertCommand.Parameters.Add("@rec_neighborhood", SqlDbType.Int)
     da.InsertCommand.Parameters("@rec_neighborhood").SourceColumn = "收_鄰"
     da.InsertCommand.Parameters.Add("@rec_roadstreet", SqlDbType.NVarChar, 10, "收_路街")
     da.InsertCommand.Parameters.Add("@rec_lane", SqlDbType.Int)
     da.InsertCommand.Parameters("@rec_lane").SourceColumn = "收_巷"
     da.InsertCommand.Parameters.Add("@rec_number", SqlDbType.Int)
     da.InsertCommand.Parameters("@rec_number").SourceColumn = "收_號"
     da.InsertCommand.Parameters.Add("@rec_alley", SqlDbType.Int)
     da.InsertCommand.Parameters("@rec_alley").SourceColumn = "收_弄"
     da.InsertCommand.Parameters.Add("@rec_floor", SqlDbType.Int)
     da.InsertCommand.Parameters("@rec_floor").SourceColumn = "收_樓"
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/8/31 上午 09:40:59
' 寄件者
     da.InsertCommand.Parameters.Add("@sender_name", SqlDbType.NVarChar, 10, "寄_姓名")
     da.InsertCommand.Parameters.Add("@sen_zip", SqlDbType.Int)
     da.InsertCommand.Parameters("@sen_zip").SourceColumn = "寄_郵遞區號"
     da.InsertCommand.Parameters.Add("@sen_address", SqlDbType.NVarChar, 50, "寄_地址")
     da.InsertCommand.Parameters.Add("@sen_areacode", SqlDbType.NVarChar, 2, "寄_區碼")
     da.InsertCommand.Parameters.Add("@sen_localnumber", SqlDbType.NVarChar, 8, "寄_號碼")
     da.InsertCommand.Parameters.Add("@sen_cellphone", SqlDbType.NVarChar, 10, "寄_手機號碼")
----------------------------------------
ps.麻煩你了~~我再繼續重新檢查
作者 : pclub(識丁) VB.Net優秀好手C#優秀好手ASP.Net優秀好手貼文超過1000則
[ 貼文 1040 | 人氣 8390 | 評價 3800 | 評價/貼文 3.65 | 送出評價 8 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/1 上午 07:07:00
Hmm, Parameter 是自己寫的(不是用 CommandBuilder),那 SQL 指令也列出來看吧
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/1 上午 08:46:02
Dim sqlinsert As String = _
     "insert into pkt" & _
     " (包裹編號, 包裹名稱, 收貨日, 預定配達日期, 指定配達時段, 包裹種類, 發送站編號, 送達狀態, 包裹尺寸, 包裹運費, 收_姓, 收_名, 收_區碼, 收_號碼, 收_手機號碼, 收_郵遞區號, 收_縣市, 收_鄉鎮市區, 收_里村, 收_鄰, 收_路街, 收_巷, 收_號, 收_弄, 收_樓, 寄_姓名, 寄_郵遞區號, 寄_地址, 寄_區碼, 寄_號碼, 寄_手機號碼)" & _
     " values (@packet_id, @packet_name, @receive_date, @deliver_date, @deliver_phase, @packet_category, @station_id, @deliver_state, @packet_size, @packet_money, @rec_firstname, @rec_lastname, @rec_areacode, @rec_localnumber, @rec_cellphone, @rec_zip, @rec_city, @rec_area, @rec_dorp, @rec_neighborhood, @rec_roadstreet, @rec_lane, @rec_number, @rec_alley, @rec_floor, @sender_name, @sen_zip, @sen_address, @sen_areacode, @sen_localnumber, @sen_cellphone)"



作者 : pclub(識丁) VB.Net優秀好手C#優秀好手ASP.Net優秀好手貼文超過1000則
[ 貼文 1040 | 人氣 8390 | 評價 3800 | 評價/貼文 3.65 | 送出評價 8 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/2 上午 04:27:15

     Dim connectionString As String = "Server=(local);Database=Northwind;Integrated Security=SSPI;"
     Dim connection As New SqlConnection(connectionString)
     connection.Open()

     Dim sqlString As String = " select * from Shippers"
     Dim da As New SqlDataAdapter(sqlString, connection)
     Dim ds As New DataSet

     da.Fill(ds)

     Dim table As DataTable
     table = ds.Tables(0)

     Dim tableName As String = table.TableName

     Dim row As DataRow
     row = table.NewRow()
     row("CompanyName") = "MyCompany1"
     row("Phone") = "MyPhone2"
     table.Rows.Add(row)

     Dim insertString As String
     insertString = "insert into Shippers (CompanyName, Phone)" _
     & " values " _
     & " (@CompanyName, @Phone)"

     da.InsertCommand = New SqlCommand(insertString, connection)
     da.InsertCommand.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName")
     da.InsertCommand.Parameters.Add("@Phone", SqlDbType.NVarChar, 24, "Phone")

作者 : pclub(識丁) VB.Net優秀好手C#優秀好手ASP.Net優秀好手貼文超過1000則
[ 貼文 1040 | 人氣 8390 | 評價 3800 | 評價/貼文 3.65 | 送出評價 8 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/2 上午 04:27:45

     Try
     Dim changedDataSet As DataSet = ds.GetChanges

     If changedDataSet Is Nothing Then
     MessageBox.Show("No Changes", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
     da.Fill(ds, tableName)
     Exit Sub
     End If

     If MessageBox.Show("Do you wish to save?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
     If changedDataSet.HasErrors Then
     MessageBox.Show("Data has error, cannot save.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information)
     Else
     da.Update(changedDataSet, tableName)
     ds.AcceptChanges()
     MessageBox.Show("Update complete", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information)
     End If
     End If
     Catch dbcx As DBConcurrencyException
     MessageBox.Show(dbcx.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
     Catch ex As Exception
     MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error)
     End Try

     ds.Clear()
     da.Fill(ds, tableName)

     DataGrid1.DataSource = ds
     DataGrid1.DataMember = tableName

     da.Dispose()
     da = Nothing

     connection.Dispose()
     connection = Nothing
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/4 上午 01:04:37
我看了你的程式碼並無不同
因這邊只能貼2000各字元
我乾脆把檔案寄給你,如何?
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/4 下午 12:28:26
da.Update(dschanged, "pkt") 發生 Run-Time 例外狀況: System.Data.SqlClient.SqlException - 變數名稱 '@rec_localnumber' 已經宣告。在一個查詢批次或預存程序內的變數名稱必須是唯一的。

識丁你好:
首先我已經把packet-中文.sql的"check",用標準語法寫好,可是就出現上面的錯誤,如果沒有用"標準語法"就會出現與"收_號碼"違反條件;就上面的錯誤我做了以下檢查:
1.我在.net裡搜尋@rec_localnumber也只有"收_號碼"在使用
  並無多各欄位共用同一個變數.
2.packet-中文.sql裡確定無誤.

請問還有那裡要注意的呢?
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/6 下午 04:01:35
監看式如下:
1.ds.Tables("pkt").Rows(bmb.Position).Item("packet_id") "0000000005" {String} Object
2.txtpid.text "0000000005" String
da.Update(changedDataSet, "pkt") 發生 Run-Time 例外狀況: System.Data.SqlClient.SqlException - INSERT 陳述式與 COLUMN CHECK 條件約束 'CK__pkt__packet_id__6BAEFA67' 發生衝突。衝突發生於資料庫 'customer',資料表 'pkt', column 'packet_id'。
陳述式已經結束。
處理步驟砍packet_id的check,再次執行
監看式如下:
1.ds.Tables("pkt").Rows(bmb.Position).Item("rec_localnumber") "22222222" {String} Object
2.txtreclnum.text "22222222" String
da.Update(changedDataSet, "pkt") 發生 Run-Time 例外狀況: System.Data.SqlClient.SqlException - INSERT 陳述式與 COLUMN CHECK 條件約束 'CK_rec_localnumber' 發生衝突。衝突發生於資料庫 'customer',資料表 'pkt', column 'rec_localnumber'。
陳述式已經結束。
處理步驟砍rec_localnumber的check,再次執行
監看式如下:
1.ds.Tables("pkt").Rows(bmb.Position).Item("rec_cellphone") "2222222222" {String} Object
2.txtreccelph.text "2222222222" String
da.Update(changedDataSet, "pkt") 發生 Run-Time 例外狀況: System.Data.SqlClient.SqlException - INSERT 陳述式與 COLUMN CHECK 條件約束 'CK_rec_cellphone' 發生衝突。衝突發生於資料庫 'customer',資料表 'pkt', column 'rec_cellphone'。
陳述式已經結束。
處理步驟砍rec_cellphone的check,再次執行
監看式如下:
1.ds.Tables("pkt").Rows(bmb.Position).Item("sen_localnumber") "33333333" {String} Object
2.txtsenlnum.text "33333333" String
da.Update(changedDataSet, "pkt") 發生 Run-Time 例外狀況: System.Data.SqlClient.SqlException - INSERT 陳述式與 COLUMN CHECK 條件約束 'CK_sen_localnumber' 發生衝突。衝突發生於資料庫 'customer',資料表 'pkt', column 'sen_localnumber'。
陳述式已經結束。
處理步驟砍sen_localnumber的check,再次執行
監看式如下:
1.ds.Tables("pkt").Rows(bmb.Position).Item("sen_localnumber") "33333333" {String} Object
2.txtsencelph.text "3333333333" String
da.Update(changedDataSet, "pkt") 發生 Run-Time 例外狀況: System.Data.SqlClient.SqlException - INSERT 陳述式與 COLUMN CHECK 條件約束 'CK_sen_cellphone' 發生衝突。衝突發生於資料庫 'customer',資料表 'pkt', column 'sen_cellphone'。陳述式已經結束。
處理步驟砍sen_cellphone的check,再次執行
之後就可以儲存,但都是存預設值,所以之前存的都是"000000000X"果然跟sql違反條件原因我是設成十個數字.所以我搞清楚問題了~花了好久~會不會跟insert裡面的變數抓不到值!?有關係?請問上面兩位有沒有什麼看法~
作者 : vbipkkman(阿森)
[ 貼文 35 | 人氣 4490 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/9/7 下午 09:13:06
此問題我已解決,by 麗達
你可以這樣來嘗試:
1.將FORM拉大一些,右邊放一個DATAGRID
2.在Dim changedDataSet As DataSet = ds.GetChanges的下一行寫
DataGrid1.DataSource = changedDataSet之後執行,看DATAGRID的變化情況
你會發現DATAGRID1中存在2筆,第二筆就是新增的000000000X,儘管你改了它及KEY入其他欄位,但仍是初始化的值
這說明所KEY入的一些資料都是徒勞的@_@
3.在Dim changedDataSet As DataSet = ds.GetChanges之上一行插入
Me.BindingContext(ds, "pkt").EndCurrentEdit()
執行結果就是我們所期望的哦^__^
PS:資料庫中的那些約束依舊可以存在
 板主 : 小朱
 > 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