Board logo

標題: [發問] dataset.tables(0).rows(n)可以刪除,但無法回存資料庫,要如何解決? [打印本頁]

作者: opo    時間: 6 小時前     標題: 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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)