ต้องการทราบวิธีเขียนเงือนไขการเช็คข้อมูล กรณีที่ค้นหาแ้ล้วไม่พบข้อมูลใน database ค่ะ
Code (C#)
private void bindingSearchDataMembers() // ส่วนของโค้ดแสดงส่งค่ามาแสดงข้อมูลในหน้าฟอร์ม
{
DBC = new MembershipCardSystem.BusinessLayer.DBClassDataMembers();
DBC.Connect();
ds = new DataSet();
da = (SqlDataAdapter)DBC.GetselectDataID(maskedTextBox1.Text);
da.Fill(ds, "DATA_MEMBERS");
dataGridView1.DataSource = ds.Tables["DATA_MEMBERS"];
txtNo.Text = ds.Tables[0].Rows[0]["ลำดับที่"].ToString();
cmbTypeMember.Text = ds.Tables[0].Rows[0]["ประเภทบัตรสมาชิก"].ToString();
cmbTitleN.Text = ds.Tables[0].Rows[0]["คำนำหน้าชื่อ"].ToString();
txtName.Text = ds.Tables[0].Rows[0]["ชื่อ"].ToString();
txtSurname.Text = ds.Tables[0].Rows[0]["นามสุกล"].ToString();
dtpBirthday.Text = ds.Tables[0].Rows[0]["วัน/เดือน/ปีเกิด"].ToString();
}
Code (C#)
public SqlDataAdapter GetselectDataID(String DataMemberNo) // อันนี้เป็นโค้ดส่วนที่เขียน sql ในการแสดงข้อมูล
{
temp = @"SELECT DATA_MEMBERS.DataMemberNo, TITLE_NAME.TitleName, DATA_MEMBERS.MemName, DATA_MEMBERS.Surname, DATA_MEMBERS.MemAddress,
FROM TITLE_NAME ON DATA_MEMBERS.TitleNo = TITLE_NAME.TitleNo
WHERE DATA_MEMBERS.DataMemberNo IN
(SELECT BARCODE_MEMBER.DataMemberNo FROM BARCODE_MEMBER WHERE Member_Barcode LIKE '%" + DataMemberNo + "%')";
da = new SqlDataAdapter(temp, Conn);
return da;
}
กรณีเมื่อค้นหาข้อมูลพบก็จะส่งข้อมูลมาแสดงในส่วนที่เป็น textbox และใน datagrid และุ้้ถ้ากรณีที่หาข้อมูลไม่พบ คือว่าเขียนแยกกันแบบนี้จะเขียนโค้ดในรูปแบบไหนดีในการเช็คค่า true และ false ค่ะ
เพราะว่ากรณีที่ค้นหาข้อมูลที่พบใน database ก็จะแสดงขึ้นมาใน datagrid และ textbox ได้ไม่มีปัญหาแต่กรณีที่ไม่พบมัน error อะค่ะ..ในใส่ที่ให้แสดงใน textbox ช่วงตรงนี้อ่ะ txtNo.Text = ds.Tables[0].Rows[0]["ลำดับที่"].ToString();
รบกวนช่วยเขียนให้ดูหน่อยนะค่ะ ขอบคุณค่ะTag : .NET, Ms SQL Server 2005, Crystal Report, Win (Windows App), C#, VS 2008 (.NET 3.x)
ประวัติการแก้ไข 2010-10-27 23:23:09 2010-10-27 23:23:56 2010-10-27 23:24:44 2010-10-27 23:25:23
Date :
2010-10-27 23:17:05
By :
Jing_Jai
View :
1126
Reply :
3
Code (C#)
public SqlDataAdapter GetselectDataID(String DataMemberNo) // อันนี้เป็นโค้ดส่วนที่เขียน sql ในการแสดงข้อมูล
{
System.Text.StringBuilder cmdBuilder = new System.Text.StringBuilder();
cmdBuilder.AppendLine("SELECT DATA_MEMBERS.DataMemberNo, TITLE_NAME.TitleName");
cmdBuilder.AppendLine(" ,DATA_MEMBERS.MemName ,DATA_MEMBERS.Surname");
cmdBuilder.AppendLine(" ,DATA_MEMBERS.MemAddress");
cmdBuilder.AppendLine("FROM DATA_MEMBERS");
cmdBuilder.AppendLine(" LEFT JOIN TITLE_NAME ");
cmdBuilder.AppendLine(" ON DATA_MEMBERS.TitleNo = TITLE_NAME.TitleNo");
cmdBuilder.AppendLine(" LEFT JOIN BARCODE_MEMBER ");
cmdBuilder.AppendLine(" ON DATA_MEMBERS.DataMemberNo = BARCODE_MEMBER.DataMemberNo ");
cmdBuilder.AppendLine("WHERE BARCODE_MEMBER.Member_Barcode LIKE '%" + DataMemberNo + "%')");
da = new SqlDataAdapter(cmdBuilder.ToString(), Conn);
return da;
}
SQL Statement เท่าที่เห็นผิด 2 ตำแหน่งค่ะ ส่วนคำถามของคุณไม่ค่อยเข้าใจ
รอพี่ๆเพื่อนๆคนอื่นๆ อธิบายละกันนะคะ
และก้อ sqldatareader ไม่ค่อยแนะนำให้ใช้เท่าไหร่ เปลี่ยนเป็น dataset หรือ datatable จะเสถียรกว่านะคะ
ประวัติการแก้ไข 2010-10-28 00:35:54 2010-10-28 00:36:20 2010-10-28 00:39:10
Date :
2010-10-28 00:34:36
By :
blurEyes
จริง Count Row จาก ds.Tables[0] (.Rows.Count) แล้วตรวจสอบ ว่ามี Row หรือไม่มีก่อนทำการแทนค่าก็น่าจะแก้ปัญหาของ จขกท ได้นะครับ
ประวัติการแก้ไข 2010-10-28 08:57:32
Date :
2010-10-28 08:57:03
By :
kaimuk
ขอบคุณค่ะ ได้แล้วววว ^__^
Date :
2010-10-28 09:06:07
By :
Jing_Jai
Load balance : Server 03