Vb.net 在VB中从Gridview中的数据更新数据库
这是用于将数据从数据库显示到gridview的代码…如果我在gridview中进行任何更改,并且它必须在数据库中更新…我不知道如何执行…有人能帮我吗Vb.net 在VB中从Gridview中的数据更新数据库,vb.net,Vb.net,这是用于将数据从数据库显示到gridview的代码…如果我在gridview中进行任何更改,并且它必须在数据库中更新…我不知道如何执行…有人能帮我吗 Dim DBCONSRT, QRYSTR As String Dim strSQL As String Dim DBCON, myConn, myCommand, rs As Object Dim NoOfRecords As Long rs = CreateObject("ADODB.Recordse
Dim DBCONSRT, QRYSTR As String
Dim strSQL As String
Dim DBCON, myConn, myCommand, rs As Object
Dim NoOfRecords As Long
rs = CreateObject("ADODB.Recordset")
Const DB_CONNECT_STRING = "Provider=MSDASQL.1;Persist Security Info=False;User ID=cpa5k;Data Source=NP1;DSN=NP1;UID=cpa5k;PASSWORD=pass;SDSN=Default;HST=ibslnpb1.sysplex.homedepot.com;PRT=4101;Initial Catalog=QA1MM;"
myConn = CreateObject("ADODB.Connection")
myCommand = CreateObject("ADODB.Command")
myConn.Open(DB_CONNECT_STRING)
myCommand.ActiveConnection = myConn
strSQL = "select * from QA1MM.STRSK_OH FETCH FIRST 10 ROWS ONLY with ur;"
rs.Open(strSQL, myConn)
Dim myDA As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
Dim myDS As DataSet = New DataSet
myDA.Fill(myDS, rs, "MyTable")
DataGridView1.DataSource = myDS.Tables(0)
DataGridView1.Refresh()
myConn.Close()
我正在尝试这种方法,但不起作用
Dim myDA As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
Dim myDS As DataSet = New DataSet
myDA.Fill(myDS, rs, "MyTable")
ds = DataGridView1.DataSource
myDA.Update(ds)
我是这样改变的:
Dim DBCONSRT, QRYSTR As String
Dim strSQL As String
Dim DBCON, myConn, myCommand, rs As Object
Dim ds As DataSet = New DataSet
rs = CreateObject("ADODB.Recordset")
Const DB_CONNECT_STRING = "Provider=MSDASQL.1;Persist Security Info=False;User ID=cpa5k;Data Source=NP1;DSN=NP1;UID=cpa5k;PASSWORD=mexico13;SDSN=Default;HST=ibslnpb1.sysplex.homedepot.com;PRT=4101;Initial Catalog=QA1MM;"
myConn = CreateObject("ADODB.Connection")
myCommand = CreateObject("ADODB.Command")
myConn.Open(DB_CONNECT_STRING)
myCommand.ActiveConnection = myConn
Dim myDA As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter
Dim myDS As DataSet = New DataSet
Dim dtable As DataTable = New DataTable()
myDA.UpdateCommand = New SqlClient.SqlCommand("UPDATE QA1MM.STRSK_OH set OH_QTY = 10 WHERE SKU_NBR = 108011", myConn)
' myDA.UpdateCommand.Parameters.Add("@OH_QTY", OleDb.OleDbType.VarChar, 15, "OH_QTY")
' myDA.UpdateCommand.Parameters.Add("@SKU_NBR", OleDb.OleDbType.VarChar, 15, "SKU_NBR")
' myDA.UpdateCommand.Parameters(0).SourceVersion = DataRowVersion.Current
' myDA.UpdateCommand.Parameters(1).SourceVersion = DataRowVersion.Current
dtable = DataGridView1.DataSource
myDA.Update(dtable)
myConn.Close()
但它给出的错误就像无法将“System.\u ComObject”类型的COM对象强制转换为“System.Data.SqlClient.SqlConnection”类型的类。表示COM组件的类型实例不能转换为不表示COM组件的类型;但是,只要底层COM组件支持对接口IID的QueryInterface调用,就可以将它们转换为接口。”
我更改了连接字符串,如下所示:
Provider=MSDASQL.1;Persist Security Info=False;Data
Source=NP1;DSN=NP1;SDSN=Default;HST=ibslnpb1.sysplex.homedepot.com;PRT=4101;Integrated
Security = True;Initial Catalog=QA1MM;
它不工作。错误是“多步骤OLE DB操作生成的错误”。检查每个OLE DB状态值(如果可用)。“没有完成任何工作。”……对不起,我不知道如何更改……。您像下面这样写
myConn.Open(DB_CONNECT_STRING)
myDA.Update(ds.Tables(0))
myConn.Close()
编辑:
不要将DataGridView1的数据源放入数据集中,而是按如下方式放入DataTable
Dim dtable As New DataTable()
dtable = DataGridView1.DataSource
并使用DataAdapter更新表,如下所示
myConn.Open(DB_CONNECT_STRING)
myDA.Update(dtable)
myConn.Close()
请参阅此链接,尝试以下操作:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataSet1.Tables("employee").AcceptChanges()
Dim i As Integer
Dim cmdbuilder As New OdbcCommandBuilder(odbcadptr)
i = odbcadptr.Update(odbcds, "customer")
MsgBox("Updated Rows: " & i)
End Sub
按照我的更改更改编码。连接字符串中的No enable Integrated Security=true。请在此处删除您以前的一些评论以继续评论。@SaiKalyanAkshinthala这正是您不应该做的。请在聊天中继续讨论。请将相关信息编辑到问题和/或答案中,甚至发布新的答案与新的细节,如果这是必要的。一个问题/答案的评论部分只是针对有关实际职位的相关信息,如错误,要求更多细节等,而不是长时间的讨论,即使它们可能有助于相关的人。如果你需要继续讨论,请考虑塔基把它放到聊天室里。