Thursday, May 17, 2012

save ข้อมูลจาก datagridview ลง database




comment 1 :

วน Loop แต่ละ row ของ gridview มาเก็บใส่ dataset หรือ datatable ก่อนครับ
แล้ว Loop แต่ละ Row ของ  dataset หรือ datatable 
foreach row as datarow  in dataset.table["tableName"].rows
   sqladd = " INSERT INTO priority (username,code,status)"
    sqladd &= " values ('" & row (0) .tostring() "',".......
 ..... excute....
end
 
ประมาณนี้ครับ

comment 2 : 
นอกจากการวน loop ถ้าหากใช้การ Binding dataTable กับ dataGridView สามารถนำ Datasource ของ DataGridView มาให้ DataAdaptor update ให้ได้เลยนะครับ
 
Dim dt As DataTable = Ctype(dgView.Datasource,DataTable)
myDataAdaptor.Update(dt)


comment 3 : 
ลองดู code นี้แล้วลอง Apply ใช้นะครับ
Dim sqlAdd As String = ""
Dim i As Integer = 0
Dim dtTerritories As DataTable

If MessageBox.Show("คุณต้องการบันทึกการซ่อมรายการสินทรัพย์รหัส : " & Txtid.Text & " ใช่หรือไม่ ?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
Dim dr As DataRow
For i = 0 To Me.BindingContext(dt).Count - 1
AutoID()
Try
sqlAdd = "INSERT INTO BCASSETSOFBLDSUB(LINENUMBER,ASSETSCODE,DOCDATE,DOCNO,DESC1,AMOUNT)"
sqlAdd &= " VALUES('" & CStr(Genid.ToString) & "',"
sqlAdd &= "'" & CStr(Txtid.Text) & "',"
sqlAdd &= "'" & CType(dt.Rows(i)("วันที่"), String) & "',"
sqlAdd &= "'" & CType(dt.Rows(i)("เลขที่เอกสาร"), String) & "',"
sqlAdd &= "'" & CType(dt.Rows(i)("หมายเหตุ"), String) & "',"
sqlAdd &= "'" & CType(dt.Rows(i)("จำนวนเงิน"), Int32) & "')"
 With CONN
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
COMM = New OleDbCommand
COMM = CONN.CreateCommand
tr = CONN.BeginTransaction()
With COMM
.Connection = CONN
.Transaction = tr
End With
With COMM
.CommandType = CommandType.Text
.CommandText = sqlAdd
.Connection = CONN
.ExecuteNonQuery()
tr.Commit()
End With
Catch editerr As Exception
MessageBox.Show("พบข้อผิดพลาด!!! " & editerr.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error)
Txtid.Focus()
Txtid.SelectAll()
Exit Sub
Finally
CONN.Close()
End Try
Next
MessageBox.Show("เพิ่มข้อมูล เรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
Txtid.Text = ""
DataGrid1.DataBindings.Clear()
drawgrid()
comment 4 : 

ลองดูนะครับ
dim iRow as integer
dim sCode as string
di  sStatus as string
dim sSql as string
for irow = 1 to datagridview.row.item.count - 1
     sCode = datagridview.row(irow).cells(1).value
     sStatus = datagridview.row(irow).cells(2).value
     sSql = INSERT INTO user_priority (username,code,status) VALUES ("
     sSql = sSql & "'" & cbousername.Text & "',"     
     sSql = sSql "'" & sCode & "',"
     sSql = sSql & "'" & iif(sStatus = 0,"0","1" & "')"
next irow

No comments:

Post a Comment