 |
|
DataGridViewComboBoxColumn ที่ไม่อ้าง PK แล้วเจอแบบนี้ต้องแก้ยังไงครับ |
|
 |
|
|
 |
 |
|
ลองดักที่ sql isnull(field,'-') as field มั่ว นะ อิอิ
|
ประวัติการแก้ไข 2014-10-14 18:33:02 2014-10-14 18:33:30
 |
 |
 |
 |
Date :
2014-10-14 18:31:23 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันไม่ใช่ null ครับพี่ แค่ค่าใน data มันเปลี่ยน อย่างแต่ก่อน เป็น หอง spectroscopy เป็น ห้อง spectroscopy
แล้วยังเป็นในกรณี เราลบข้อมูลที่เอามาใช้เป็น combobox ก็ error
|
 |
 |
 |
 |
Date :
2014-10-15 08:12:23 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ๋อ แล้ว DataGridView ตัวนี้ดึงข้อมูลมาโชว์ยังไงครับใช้ while loop add ปะ ถ้าใช้ while เราสร้าง combobox ขึ้นมาแล้วค่อย insert ลงไปใน cell แบบนี้ ได้ ปะ
|
 |
 |
 |
 |
Date :
2014-10-15 09:02:35 |
By :
gaowteen |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

ผมใช้ BindingSource ครับ
this.tblALS_F_601DataGridView.DataSource = this.tblALS_F_601BindingSource;
this.dataGridViewTextBoxColumn3.DataPropertyName = "RmID";
this.dataGridViewTextBoxColumn3.DataSource = this.tblRoomBindingSource;
this.dataGridViewTextBoxColumn3.DisplayMember = "rName";
this.dataGridViewTextBoxColumn3.HeaderText = "RmID";
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
เดิมทีผมทำ relationships แต่พอลบข้อมูลใน table room
ข้อมูลใน ALS_F_601 ก็หายไปด้วยผมก็เลยเอา relationships ออก
แต่พอแก้ไขข้อมูลใน table room ALS_F_601 ก็ดัน Error แบบที่เห็นครับ
|
 |
 |
 |
 |
Date :
2014-10-15 10:17:00 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รื้อฟื้นความรู้เดิม (> สิบปีที่ผ่านมา)
dgv = DataGridView
Code (VB.NET)
Private Sub dgvCustomer_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles dgvCustomer.DataError
Dim strSubMsg As String = String.Empty
If e.Exception IsNot Nothing Then
strSubMsg = e.Exception.Message
End If
If strSubMsg.Contains("does not allow nulls") OrElse strSubMsg.Contains("to be unique") Then 'รหัสซ้ำ Or null
MessageBox.Show("รหัสที่ป้อนมีอยู่แล้วหรือไม่ระบุค่า (null) กรุณาป้อนให้ถูกต้อง" & Constants.vbCrLf & Constants.vbCrLf & strSubMsg, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf strSubMsg.Contains("not in a correct format") Then
MessageBox.Show("ป้อนข้อมูลไม่ถูกต้อง เช่น จำนวนเงิน แต่ป้อนเป็นตัวอักษร 'หอย' เป็นต้น โอมเพี้ยงป้อนให้ถูกต้อง" & Constants.vbCrLf & Constants.vbCrLf & strSubMsg, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
'TODO:
End If
Try
e.Cancel = False
If dgvCustomer.DataSource IsNot Nothing AndAlso dgvCustomer.DataSource.GetType.Name = "BindingSource" Then
Dim ctrSubBindingSource As BindingSource = dgvCustomer.DataSource
ctrSubBindingSource.ResumeBinding()
End If
dgvCustomer.CancelEdit()
Catch ex As Exception
MessageBox.Show(ex.Message, "Warning", MessageBoxButtons.OK)
End Try
End Sub
ปล. นึกถึงเรื่องเล่า ชอบเล่าความหลัง "ชอบกินของขม ชอบชมนมสาว"
พูดลอยลอยได้ว่า "ยิ่งแก่ (อายุมาก) ยิ่งมากตัณหากลับ"
|
ประวัติการแก้ไข 2014-10-15 10:31:11 2014-10-15 10:34:54
 |
 |
 |
 |
Date :
2014-10-15 10:24:47 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ แต่ไม่ตรงประเด็น
Code (VB.NET)
Private Sub yourGrid_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles yourGrid.DataError
Dim strSubMsg As String = String.Empty
If e.Exception IsNot Nothing Then
strSubMsg = e.Exception.Message
End If
If strSubMsg.Contains("DataGridViewComboBoxCell value is not valid.") Then
e.ThrowException = False
End If
End Sub
ปัญหาคือ ALS_F_601.RmID มันไม่มีอยู่ในตาราง XXX.RmID (มัน Bound เข้ากับ ComboBox)
เช่น
A 01
B 02 /*ไม่มีอยู่ในตาราง XXX*/
XXX.RmID
01 ห้องปฏิบัติกาม
03 สารเคมีอะไรก็ว่าไป
04 ห้องเก็บตัวอย่าง
...
ปล. ผมว่าคุณควรจะศึกษา Relation เพิ่มเติมนะครับ (Cascade/Trigger/etc)
ลองดูครับ ว่าได้หรือไม่?
Code (VB.NET)
Private Sub yourGrid_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles yourGrid.DataError
/*โดยที่ไม่ต้องเขียนโค๊ดดักแม้แต่บรรทัดเดียว*/
End Sub
|
ประวัติการแก้ไข 2014-10-15 20:23:55 2014-10-15 20:25:20
 |
 |
 |
 |
Date :
2014-10-15 19:29:09 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมว่าคุณควรจะศึกษา Relation เพิ่มเติมนะครับ (Cascade/Trigger/etc) อันนี้มันเป็นประโยชน์สำหรับตัวของคุณเองครับ
ผมเปรียบเทียบปัญหาของคุณได้ดังนี้ครับ (ตามที่ผมเข้าใจ และพยายามอธิบายเท่าที่ผมสะดวก)
ข้อมูลชั้นเรียน ถ้าระดับประถมก็มี ป.1 - ป.6
ข้อมูลชั้นเรียน ถ้าระดับมัธยมก็มี ม.1 - ม.6
ข้อมูลชั้นเรียน ถ้าระดับปริญญาตรีก็มี ปี.1 - ปี.4 (ยกเว้น มหาวิทยาลัยเปิด ซึ่งไม่จำกัดปี)
ประวัตินักศึกษา บางคนอยู่ชั้น ป. 8, บางคน อยู่ ม.69, บางคนอยู่ ปี 12 เป็นต้น
เชื่อผมไหมว่าทุกวันนี้ กระทรวงมหาดไทย ข้อมูลในบัตรประชาชนของคนไทย บางคน เกิดวันที่ 34 กุมภายน พ.ศ. 1990
มันเรียกเสียงหัวเราะของคนบางคนได้ แต่สำหรับบางคน ทำธุรกรรมอะไรไม่ได้เลยครับ (สุ่มเสี่ยงโมฆะ/โดนเอาเปรียบ)
น้ำตามันไหลออกมาเอง เรื่องจริงนะครับ
|
ประวัติการแก้ไข 2014-10-15 20:44:45
 |
 |
 |
 |
Date :
2014-10-15 20:42:16 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จาก #NO 8 เดี๋ยวจะหาว่าเขามั่วและคิดว่าระบบงานของเขาผิดพลาด (นักออกแบบระบบ/เขียนโปรแกรม)
นี่คือกรณีศึกษา วันเดือนปีเกิดไม่สามารถเก็บเป็นวันที่ได้ (ไม่มีผิด/ไม่มีถูก)
--- ลุงลูกชาย/ลูกสาว เกิดวันอะไร? (ไม่รู้จำไม่ได้ ลุงอ่านหนังสือไม่ออกเขียนไม่ได้ อีหนูเอ้ย)
--- การเดินทางสมัยนั้นลำบากลำบนมาก (เดินทางเป็นแรมเดือนแรมปี)
--- การติดต่อหน่วยงานราชการในยุคสมัยนั้น (เอาง่ายฯแค่อำเภอ มันต้องหมอบมันต้องคลาน [...])
--- และอีกหลายฯสาเหตุ etc...
กงล้อประวัติศาสตร์จะหมุนเวียนมาที่เดิมเสมอ
--- ลูกหลานอยากจะกตัญญู จัดงานวันเกิดให้ ก็ทำไม่ได้ (ไม่รู้วัน ไม่รู้เดือน ปีพอเดาได้จากใบหน้า ของวันเกิด)
ปล. ตรงประเด็นไหมก็แล้วแต่จะคิด
|
 |
 |
 |
 |
Date :
2014-10-16 07:38:20 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เรียนถามผู้รู้ครับ กรณีนี้ถ้าไม่ตัด relationships ออกจะใช้ DataGridViewComboBoxColumn ได้ไม๊ครับ
|
 |
 |
 |
 |
Date :
2014-10-20 09:30:07 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ข้อมูลที่อยู่ใน Table ที่เก็บ Transaction มันไม่มีใน Table ของ Master หรือปล่าวครับ
คือมันจะ error แค่บางอันใช่ไหมครับ
|
 |
 |
 |
 |
Date :
2014-10-21 09:24:38 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช่เลยครับ
คือพอลบแล้วมันจะไม่โชว์ใน combobox แต่ผมอยากให้โชว์ครับ
ประมาณว่าเราลบชื่อพนักงานออกแล้ว แต่ยังอยากให้มีในระบบบางระบบอยู่แต่บางระบบไม่อยากให้มีประมาณนั้น
|
 |
 |
 |
 |
Date :
2014-10-21 09:48:08 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าอย่างนั้นก็ต้องไม่ลบ Master ออกครับ แต่อาจจะทำให้เลือกไม่ได้แทนประมาณนี้อ่ะครับ
|
 |
 |
 |
 |
Date :
2014-10-21 09:54:18 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมมาจากห้องที่ DataGrid มีปัญหาเหมือนกัน
...... บางทีพี่ๆก้อจริงจังกันเกินไปนะ
ผมตอนนี้ อ่ายุ 22 ใครมาเหน็บไรผมใช้คำว่า "ช่างแม่ง" สบายขึ้นเยอะเลย ชิวมากชีวิต  
|
 |
 |
 |
 |
Date :
2014-10-23 01:05:19 |
By :
toptentop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|