ballwarm
2005-02-25, 12:48 AM
Dim strCmd As String
Dim sqlCN As SqlConnection
Dim sqlCM As SqlCommand
Dim sqlDA As SqlDataAdapter
Dim sqlDS As DataSet
Dim SqlCB As SqlCommandBuilder = New SqlCommandBuilder(sqlDA)
sqlCN = New SqlConnection
sqlCM = New SqlCommand(strCmd, sqlCN)
sqlDA = New SqlDataAdapter
sqlDA.TableMappings.Add("testtable", "test")
sqlDS = New DataSet
sqlCN.ConnectionString = "Server=localhost;Database=test;UID=sa;PWD=test"
sqlCN.Open()
strCmd = "SELECT test FROM testtable"
sqlCM = New SqlCommand(strCmd, sqlCN)
sqlDA.SelectCommand = sqlCM
sqlDS = New DataSet("test")
sqlDA.Fill(sqlDS, "test")
sqlDS.Tables(0).Rows(0).Item(0) = "test2"
sqlDA.Update(sqlDS, "test")
sqlCN.Close()
上面是我的測試程式,我想把db的資料到到dataset後,在dataset針對好多筆做運算,運算update回db,可是發生了錯誤訊息如下。請問用這樣子SqlDataAdapter搭配SqlCommandBuilder 不是可以自己產生update的指令,就可以輕易的update回資料庫。請高手幫忙,謝謝。
再請教我是修改多筆資料,可以不用迴圈,一個update指令就update dataset已修改的資料嗎??
類型 'System.InvalidOperationException' 的未處理例外狀況發生於 system.data.dll
其他資訊: 當傳遞擁有已修改資料列的 DataRow 集合時,更新需要有效的 UpdateCommand。
贊助商連結
Dim sqlCN As SqlConnection
Dim sqlCM As SqlCommand
Dim sqlDA As SqlDataAdapter
Dim sqlDS As DataSet
Dim SqlCB As SqlCommandBuilder = New SqlCommandBuilder(sqlDA)
sqlCN = New SqlConnection
sqlCM = New SqlCommand(strCmd, sqlCN)
sqlDA = New SqlDataAdapter
sqlDA.TableMappings.Add("testtable", "test")
sqlDS = New DataSet
sqlCN.ConnectionString = "Server=localhost;Database=test;UID=sa;PWD=test"
sqlCN.Open()
strCmd = "SELECT test FROM testtable"
sqlCM = New SqlCommand(strCmd, sqlCN)
sqlDA.SelectCommand = sqlCM
sqlDS = New DataSet("test")
sqlDA.Fill(sqlDS, "test")
sqlDS.Tables(0).Rows(0).Item(0) = "test2"
sqlDA.Update(sqlDS, "test")
sqlCN.Close()
上面是我的測試程式,我想把db的資料到到dataset後,在dataset針對好多筆做運算,運算update回db,可是發生了錯誤訊息如下。請問用這樣子SqlDataAdapter搭配SqlCommandBuilder 不是可以自己產生update的指令,就可以輕易的update回資料庫。請高手幫忙,謝謝。
再請教我是修改多筆資料,可以不用迴圈,一個update指令就update dataset已修改的資料嗎??
類型 'System.InvalidOperationException' 的未處理例外狀況發生於 system.data.dll
其他資訊: 當傳遞擁有已修改資料列的 DataRow 集合時,更新需要有效的 UpdateCommand。
贊助商連結