Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 108,207

HOME > .NET Framework > Forum > C# ตรวจสอบค่าซ้ำกันใน DataGridView หรือใน Database sql



 

C# ตรวจสอบค่าซ้ำกันใน DataGridView หรือใน Database sql

 



Topic : 103234

Guest




ตรวจสอบค่าซ้ำกันใน DataGridView หรือใน Database sq
จากรูป เมื่อเพิ่มหรือแก้ไขข้อมูลที่เป็นหมายเลขบัตรประชาชน เมื่อกด"บันทึก"อยากให้มันไปตรวจสอบในฐานข้อมูลนะครับ ว่ามันมีข้อมูลอยู่แล้วหรือไม่ ถ้าไม่ก็บันทึกลงได้ หรือถ้ามีแล้วก็ให้ขึ้น MessageBoxมาเตือนว่ามีข้อมูลแแล้ว :: หรือเพื่อลดความซับซ้อนของโค้ด ก็ตรวจสอบแค่ใน DataGridView ก็ได้ครับ

ขอบคุณครับ



Code (C#) ปุ่มบันทึก
private void btSave_Click(object sender, EventArgs e)
        {
            if (Program.checkMaskedBox(mkIDCard))   [color=green]//สร้างใน Program.cs
            {
                MessageBox.Show("กรุณากรอกข้อมูลหมายเลขบัตรประชาชนให้ถูกต้องด้วย!", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (Program.checkTextBox(txtFName) || Program.checkTextBox(txtLName) || Program.checkTextBox(txtUserName) || Program.checkTextBox(txtPassword) || Program.checkTextBox(txtAddress))   [color=green] //สร้างใน Program.cs
            {
                MessageBox.Show("กรุณากรอกข้อมูลชื่อจริง,นามสกุล,UserName,Password,ที่อยู่ ให้ถูกต้องด้วย!", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            Program.clickButton("SAVE", btAdd, btSave, btEdit, btDelete, btCancel);
            if (Program.checkDuplicate("SELECT IDCard FROM TBEmployee WHERE IDCard='" + IDCard + "'"))
            {
                string sql = "UPDATE TBEmployee SET " +
                    "IDCard='" + mkIDCard.Text.Trim() + "'," +
                    "FName='" + txtFName.Text.Trim() + "'," +
                    "LName='" + txtLName.Text.Trim() + "'," +
                    "Gender='" + cbGender.Text.Trim() + "'," +                    
                    "Phone='" + mkPhone.Text.Trim() + "'," +
                    "Address='" + txtAddress.Text.Trim() + "'," +
                    "EMail='" + txtEmail.Text.Trim() + "'," +
                    "UserName='" + txtUserName.Text.Trim() + "'," +
                    "Password='" + txtPassword.Text.Trim() + "' " +
                    "WHERE IDCard='" + IDCard + "'";
                using (SqlCommand cm = new SqlCommand(sql, Program.cn))
                {
                    if (Program.connection())
                    {
                        try
                        {
                            cm.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("เกิดข้อผิดพลาดในส่วนของการแก้ไขข้อมูล เนื่องจาก " + ex.Message, "เกิดปัญหา", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                }
                MessageBox.Show("การแก้ไขข้อมูลเรียบร้อยแล้ว", "สำเร็จ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                string sql = "INSERT INTO TBEmployee(IDCard,FName,LName,Gender,Phone,Address,EMail,UserName,Password) " +
                    "VALUES('" + mkIDCard.Text.Trim() + "','" + txtFName.Text.Trim() +
                    "','" + txtLName.Text.Trim() + "','" + cbGender.Text.Trim() +
                    "','" + mkPhone.Text.Trim() + "','" + txtAddress.Text.Trim() +
                    "','" + txtEmail.Text.Trim() + "','" + txtUserName.Text.Trim() +
                    "','" + txtPassword.Text.Trim() + "')";
                using (SqlCommand cm = new SqlCommand(sql, Program.cn))
                {
                    if (Program.connection())
                    {
                        try
                        {
                            cm.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("เกิดข้อผิดพลาดในส่วนของการบันทึกข้อมูล เนื่องจาก " + ex.Message, "เกิดปัญหา", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                }
                MessageBox.Show("การบันทึกข้อมูลเรียบร้อยแล้ว", "สำเร็จ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (checkAdmin())
            {
                showGridEmployee("SELECT * FROM TBEmployee ORDER BY IDCard");
            }
            else
            {
                showGridEmployee("SELECT * FROM TBEmployee WHERE IDCard='" + Program.emp_id + "'");
            }  
            clear();
            gbEmployee.Enabled = false;            
        }


Code (C#) Program.cs
public static bool checkMaskedBox(MaskedTextBox objectMK)
        {
            if (objectMK.Text.Replace("_", "") == "" || objectMK.Text.Replace("_", "").Length < 13)
            {
                return true;
            }
            else
            {
                return false;                              
            }
        }
 public static bool checkTextBox(TextBox objectTXT)
        {
            if (objectTXT.Text == "")
            {
                return true;
            }
            else
            {
                return false;




Tag : Ms SQL Server 2005, C#, C, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-12-02 07:03:38 By : nayninew View : 5964 Reply : 6
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ติดปัญหาตรงไหนครับ แค่เอาค่าไปเช็คใน Database ก่อนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-02 10:03:34 By : mr.win
 


 

No. 2



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ถ้าโดยปกติทั่วไปแล้วในเมธอด checkDuplicate ควรจะมีการทำงานดังนี้

1. Select โดย Where ฟิลที่ต้องการตรวจเช็คไปว่ามีใน Table หรือไม่ (ในกรณีใช้ RowFlag ก็ And เพิ่มด้วยเอาเฉพาะที่ยังไม่ลบ)

2. หลังจาก Select เราก็จะเช็คจากจำนวนแถวที่ค้นหาเจอ ที่ได้คืนมา และถือว่า Duplicate = true เข้าการแจ้งเตือนต่อไป

แต่ถ้าอยากใช้วิธีง่ายๆ ไม่ไปยุ่งกับใน Database เช็คจากหน้าจออย่างเดียว เป็นเครื่อง Stand-alone

ก็ใช้วิธีการ Linq เช็คก็ได้ ดังนี้

1. ในเมธอด checkDuplicate ให้รับ Dataset ที่เชื่อม (Bind) อยู่กับ Datasource ของ Datagrid เข้ามาในเมธอดก่อน

2. ใช้ Linq ในเมธอด checkDuplicate ดังนี้

Code (C#)
Boolean ChkDup = false;

var DSTamp = DATASET.TBEmployee.GroupBy(it => it.IDCard).Where(g => g.Count() >= 2).FirstOrDefault().ToList();

if (DSTamp.Count > 0)
{
     ChkDup = true;
     return;
}


ลองประยุกต์ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-02 11:20:40 By : 01000010
 

 

No. 3



โพสกระทู้ ( 174 )
บทความ ( 0 )



สถานะออฟไลน์


Code (VB.NET)
	Dim intNumRows As Integer
	strSQL = "SELECT COUNT(*) FROM customer WHERE CustomerID = '"& Me.txtCustomerID.Text &"' "		
	objCmd = New SqlCommand(strSQL, objConn)
	intNumRows = objCmd.ExecuteScalar()

	IF intNumRows > 0 Then
		Me.pnlAdd.Visible = False
		Me.lblStatus.Visible = True
		Me.lblStatus.Text = "CustomerID already exist."
	Else	
	

		strSQL = "INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) " & _
		" VALUES " & _
		" ('" & Me.txtCustomerID.Text & "','" & Me.txtName.Text & "','" & Me.txtEmail.Text & "', " & _
		" '" & Me.txtCountryCode.Text & "','" & Me.txtBudget.Text & "','" & Me.txtUsed.Text & "')"

		objCmd = New SqlCommand
		With objCmd
		   .Connection = objConn
		   .CommandText = strSQL
		   .CommandType = CommandType.Text		   
		End With
						
		Me.pnlAdd.Visible = False
		Try
			objCmd.ExecuteNonQuery()            
			Me.lblStatus.Text = "Record Inserted"
			Me.lblStatus.Visible = True
		Catch ex As Exception
			Me.lblStatus.Visible = True
			Me.lblStatus.Text = "Record can not insert Error ("& ex.Message &")"
		End Try

End IF



เอาไป Gen เป็น C# อีกทีนะครับ


CR.Tc admin
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-02 13:07:59 By : nongpaoza
 


 

No. 4

Guest


โทษนะครับคือผมเพิ่ม ภาษาไทย แล้ว ขึ้นเครื่องหมาย ????? ทำไงดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-03 13:12:46 By : อนันต์ บุญอำนวย
 


 

No. 5



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 4 เขียนโดย : อนันต์ บุญอำนวย เมื่อวันที่ 2013-12-03 13:12:46
รายละเอียดของการตอบ ::
ค้นหา Google ว่า "Mysql Collection ภาษาไทย" หรือ "SQL Server Collection ภาษาไทย" ดูครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-03 13:17:52 By : 01000010
 


 

No. 6

Guest


ตรวจสอบค่าซ้ำกันใน DataGridViewทำยังไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-20 20:42:12 By : van
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# ตรวจสอบค่าซ้ำกันใน DataGridView หรือใน Database sql
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , รับทำบัญชี , โรงงานผลิตครีม , สำนักงานบัญชี , รับจดทะเบียนบริษัท

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2020 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่