ผมใช้ ที่ เป็น Web service + .net ลองดูเป็นแนวทางแล้วกัน นะครับ
Code
'--- CODE vb.net -------------------------
Dim DS As DataSet = New DataSet("Table")
Dim Table As New Data.DataTable
able.Columns.Add("Columns1", GetType(String))
'-----------------------------
'' กรณีที่มีค่าเดียว ก็ ไม่ต้องใช้ LOOP
'-----------------------------
dim sql as string = " insert into tbl_person "
Table.Rows.Add(sql ) -- ตาราง 1
'-----------------------------
'' กรณีที่มีค่าเดียว ก็ ไม่ต้องใช้ LOOP
'-----------------------------
dim sql as string = " insert into tbl_project "
Table.Rows.Add(sql ) -- ตาราง 2
'-----------------------------
'' กรณีที่มีหลายค่า ก็เก็บ ใน DATA TABLE ก่อน แล้ว ค่อย วน อ่าน ค่า แต่ในตัวอย่าง ที่ผมนำมา เป็น ListView น่ะ ครับ อาจจะไม่ตรง กับที่ต้องการ
'-----------------------------
For Each item As ListViewItem In Me.lvwscore.Items
Dim strRecRVNo As String = item.SubItems.Item(0).Text
Dim strRecSEQNo As String = item.SubItems.Item(1).Text
Dim sql As String = " UPDATE TBT_CARTONDETAILS SET " & _
" PALLETKEY = '" & PALLETKEY & "' " & _
" ,OLDPALLETKEY = '" & PALLETKEY & "' " & _
" ,PLTDAYTIME = SYSDATE " & _
" ,UPDDTE = SYSDATE " & _
" WHERE RVMANAGINGNO = '" & strRecRVNo & "'"
Table.Rows.Add(sql ) -- ตาราง 3
Next
DS.Tables.Add(Table)
ssCON.Exc_DataSet(DS) -- ส่งค่า DATA Table to webservice
'--- CODE บน WEB SERVICE -------------------------
''' --Trans Commit ----
Public objcmd As New OleDbCommand
Public objcon As New OleDbConnection
Public Trans As OleDbTransaction
Public strSQL As String
''' INSERT UPDATE DELETE --> หลายค่า ---------------------
<WebMethod()> _
Public Function Exc_DataSet(ByVal dataSet As DataSet) As String
Dim dr As DataRow
Try
__BeginTrans()
For Each dr In dataSet.Tables(0).Rows
sql = dr("Columns1") '' Columns1 --> ชื่อ Table ต้องตรงกันกับ vb.net
__TransExeSQL(sql)
Next
Trans.Commit()
Return ("Complate !!!! ")
Catch ex As Exception
Trans.Rollback()
Console.WriteLine(Err.Description)
Return ("Can't Complate !!!! " & Err.Description)
Finally
If objcon.State <> ConnectionState.Closed Then
objcon.Close()
End If
End Try
End Function
''' <remarks> BeginTrans </remarks>
Public Sub __BeginTrans()
objcon.ConnectionString = sString
If Not objcon.State = ConnectionState.Open Then
objcon.Open()
End If
Trans = objcon.BeginTransaction(IsolationLevel.ReadCommitted)
With objcmd
.Connection = objcon
.Transaction = Trans
End With
End Sub
''' <remarks> TransExeSQL </remarks>
Public Function __TransExeSQL(ByVal strSQL As String)
objcmd.CommandText = strSQL
objcmd.CommandType = CommandType.Text
__TransExeSQL = objcmd.ExecuteNonQuery()
Return __TransExeSQL
End Function