- 帖子
- 9
- 主題
- 5
- 精華
- 0
- 積分
- 15
- 點名
- 0
- 作業系統
- windows 7
- 軟體版本
- vs 2010
- 閱讀權限
- 10
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2025-10-3
- 最後登錄
- 2026-4-14
|
[發問] dataset.tables(0).rows(n)可以刪除,但無法回存資料庫,要如何解決?
就是dataset.tables(0).rows(n)可以新增和更改,也可回存資料庫,但就dataset.tables(0).rows(n)的刪除,可以刪除但無法回存資料庫,而且也沒有錯誤訊息的產生,不知道是錯在哪裡,我覺得程式好像都沒有寫錯,卻不可回存
程式如下幫我看一下哪裡有錯,怎樣才可以把dataset的刪除回存到資料庫。
這一個副程式是dataset.tables(0).rows(n)的刪除
Sub bb()
Dim datast1 As New DataSet
datast1 = getdatas()
Dim a As DataRow
Dim n As Integer = 0
For Each a In datast1.Tables(0).Rows
If a("品號") = TextBox1.Text Then
datast1.Tables(0).Rows(n).Delete()
datast1.Tables(0).Rows.Remove(a)
Exit Sub
End If
n = n + 1
Next
Label2.Text = "已刪除了"
End Sub
這一個是相關的副程式
Function getdatas() As DataSet
If Session("datast") Is Nothing Then
loaddata()
End If
getdatas = Session("datast")
End Function
這一個是相關的副程式
Function loaddata()
Dim dat As New DataSet
Dim dataadp As SqlDataAdapter
Dim sql1 As String
sql1 = "select * from 庫存資料表1"
dataadp = connsql(sql1) '這裡不寫函數,直接寫在loaddata裡也可以
dataadp.Fill(dat) '這裡的dataset不能寫資料表的名稱
Label1.Text = "糕餅資料庫庫存資料表"
Session("datast") = dat
End Function
這一個是相關的副程式
Function connsql(ByVal str1 As String) As SqlDataAdapter
Dim conn As New SqlConnection
conn.ConnectionString = "server=.\SQLExpress;Integrated Security=SSPI;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;User Instance=True"
conn.Open()
Dim dataadp As SqlDataAdapter
dataadp = New SqlDataAdapter(str1, conn)
connsql = dataadp
End Function
下面的副程式是回存資料庫的程式
Sub ee()
Dim datast1 As New System.Data.DataSet()
datast1 = getdatas()
Dim dataadp1 As System.Data.SqlClient.SqlDataAdapter
Dim sql1 As String
sql1 = "select * from 庫存資料表1"
dataadp1 = connsql(sql1)
Dim datacmd1 As New Data.SqlClient.SqlCommandBuilder(dataadp1)
dataadp1.Update(datast1) ' 只能在dataset中刪除記錄,無法回存到資料庫
Label1.Text = "已回存到資料庫去了"
End Sub |
|