 |
|
VB.Net สอบถามหน่อยครับ วิธีการ new Row DataGridView ข้าม Page ยังไง |
|
 |
|
|
 |
 |
|
ตัวอย่างการเพิ่ม Row ใน DataTable ครับ
|
 |
 |
 |
 |
Date :
2015-03-21 10:07:00 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่ครับ ผมไม่ได้จะcreate row เข้าใน datatable อ่ะครับ
คือตัวโปรแกรมผมคือ กดใส่จำนวนในหน้าที่1ก่อนแล้วกด ok แล้วให้ แสดงใน datagridview หน้า sell
อันนี้คือรูปตัวโปรแกรม

โทษที่ครับ รูปcode แรก ถ่ายมาไม่ครบเลยอาจจะทำให้เกิดความเข้าผิดว่าจะcreate datatable
อันนี้ code

พอมีคำแนะนำไหมครับว่าควรทำยังไง
ลองดูตามlink ที่ให้แล้ว ขึ้น error เหมือนในรูปแรกอ่ะครับ
รูปแรก ผมลอง debug ดูที่ละบรรทัดแล้ว ตรง ResutlNum ที่select จะ DB ก็มีค่าอ่ะครับ
|
ประวัติการแก้ไข 2015-03-23 14:01:49 2015-03-23 14:56:29
 |
 |
 |
 |
Date :
2015-03-23 13:59:09 |
By :
kamasaigis2 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
บ้านๆๆๆๆมากๆๆๆ ครับ
ก็ลองเชคดูสิครับ
หลังจากกด OK แล้วมันส่งค่าไรไปให้ database ทำไมถึง null
|
 |
 |
 |
 |
Date :
2015-03-23 15:09:38 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้ ผม ลอง debug แล้วก็มีค่า นะ ครับ

ปุ่ม OK พอกดแล้วจะเรียก ฟังชั่น ตัวนี้ทำงานอ่ะครับ
Code (VB.NET)
Sub InputHK(BC As String, ii As Integer)
Dim da As New OleDbDataAdapter
Dim ds As New DataSet
Dim dt As DataTable
Dim dt2 As DataTable
Connect()
'Dim dr As DataRow
'' Try
Dim sql_search As String
Dim search As String
Dim search2 As String
Dim num As Integer
sql_search = "SELECT Item_Detail.Item_Barcode,Item_Detail.Item_Name,Item_Detail.Item_AticleCode,Item_Stock.ItemStock,Item_Detail.Item_UnitPrice FROM Item_Stock INNER JOIN Item_Detail ON Item_Stock.ID_Item_Stock = Item_Detail.ID_Item_Detail"
'sql_search = "SELECT Item_Detail.Item_Barcode,Item_Stock.ItemStock,Item_Detail.Item_UnitPrice FROM Item_Stock INNER JOIN Item_Detail ON Item_Stock.ID_Item_Stock = Item_Detail.ID_Item_Detail"
Dim sqlWhere As String
sqlWhere = " where Item_barcode LIKE'" & BC.ToString & "'"
Dim sqlemp As String
'Dim group As String = "GROUP BY IT_PlannedList.PlannedListID, IT_PlannedList.ItemNo, IT_Description.Item_Desc, IT_PlannedList.ContractorID, Contractor.Contractor_Name, IT_PlannedList.OrderedTimes, IT_PlannedList.Qty, IT_PlannedList.Unit, IT_TransContractor.ModelID, IT_PlannedList.DateCreated ORDER BY IT_PlannedList.ItemNo"
sqlemp = sql_search & sqlWhere '& group
Dim OledbCmd As OleDbCommand
OledbCmd = New OleDbCommand(sqlemp, conn)
Dim oledbReader As OleDbDataReader = OledbCmd.ExecuteReader()
Dim Def0 As Integer = 0
Dim dis As Integer = 0
While oledbReader.Read
'MsgBox(oledbReader.Item(0).ToString & " - " & oledbReader.Item(1).ToString & " - " & oledbReader.Item(2).ToString & " - " & oledbReader.Item(3).ToString & " - " & oledbReader.Item(4).ToString)
' dt.Rows.Add()
Dim ResutlNum As Integer = CInt(oledbReader.Item(3)) - CInt(ii)
Dim RSTotal As Integer = (CInt(oledbReader.Item(4).ToString) * CInt(ii)) - dis
' MessageBox.Show(ResutlNum.ToString)
Dim dr As DataRow
dr = dt.NewRow
dr(0) = oledbReader.Item(0).ToString
dr(1) = oledbReader.Item(1).ToString
dr(2) = oledbReader.Item(2).ToString
dr(3) = FormatNumber(oledbReader.Item(4).ToString, 2)
dr(4) = ii
dr(5) = FormatNumber(dis.ToString, 2)
dr(6) = FormatNumber(RSTotal.ToString, 2)
'dr(6) = BC.ToString
dt.Rows.Add(dr)
sell.GridControl1.DataSource = dt
Price_Array(CInt(BC_CKrow)) = CInt(RSTotal.ToString)
Price_OArray(CInt(BC_CKrow)) = CInt(RSTotal.ToString)
' MessageBox.Show(BC_CKrow.ToString)
End While
BC_CKrow = BC_CKrow + 1
SumTotalCost2()
End Sub
|
 |
 |
 |
 |
Date :
2015-03-23 15:55:43 |
By :
kamasaigis2 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันเกิดเออเร่อเพราะไม่เคยใส่ค่าให้ตัวแปร dt ไงครับ
อยู่ๆคุณก็จะไปขอ new row จาก datatable ที่ค่าเป็น nothing อยู่มันก็แจ้งเตือนกลับว่าคุณอ้างอิงไม่ถูกสิ 
|
 |
 |
 |
 |
Date :
2015-03-24 13:59:41 |
By :
deksoke |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ่อ ขอบคุณครับ ได้แล้ว คือ หน้าแรก อ่ะครับ ใช้ ฟังชั่น ตัวนี้เหมือนกัน(ยิงบาร์โค้ด) แต่คือ หน้า แรกตอน ผมload form ขึ้นมา ผมให้มัน โหลด ฟังชั่นloadCol() ตัวนี้ไปด้วย
Code (VB.NET)
dt = New DataTable
dt.Columns.Add("No")
dt.Columns.Add("Name")
dt.Columns.Add("AticleCode")
dt.Columns.Add("Price")
dt.Columns.Add("Num")
dt.Columns.Add("Dis")
dt.Columns.Add("Total")
GridControl1.DataSource = dt
อีกอันที่เปนปัญหาคือกดกับตัว HotKeys ADD ITEM เข้าไป ผมไม่ได้ให้มันโหลดฟังชั้นloadCol()ด้วยเลยError
ขอบคุณมากครับทุกท่านที่ช่วยผม
|
 |
 |
 |
 |
Date :
2015-03-24 14:21:32 |
By :
kamasaigis2 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|