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

Registered : 109,038

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


 

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

 
Topic : 103234

Guest



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

ขอบคุณครับ



Code (C#) ปุ่มบันทึก
01.private void btSave_Click(object sender, EventArgs e)
02.        {
03.            if (Program.checkMaskedBox(mkIDCard))   [color=green]//สร้างใน Program.cs
04.            {
05.                MessageBox.Show("กรุณากรอกข้อมูลหมายเลขบัตรประชาชนให้ถูกต้องด้วย!", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
06.                return;
07.            }
08.            if (Program.checkTextBox(txtFName) || Program.checkTextBox(txtLName) || Program.checkTextBox(txtUserName) || Program.checkTextBox(txtPassword) || Program.checkTextBox(txtAddress))   [color=green] //สร้างใน Program.cs
09.            {
10.                MessageBox.Show("กรุณากรอกข้อมูลชื่อจริง,นามสกุล,UserName,Password,ที่อยู่ ให้ถูกต้องด้วย!", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
11.                return;
12.            }
13.            Program.clickButton("SAVE", btAdd, btSave, btEdit, btDelete, btCancel);
14.            if (Program.checkDuplicate("SELECT IDCard FROM TBEmployee WHERE IDCard='" + IDCard + "'"))
15.            {
16.                string sql = "UPDATE TBEmployee SET " +
17.                    "IDCard='" + mkIDCard.Text.Trim() + "'," +
18.                    "FName='" + txtFName.Text.Trim() + "'," +
19.                    "LName='" + txtLName.Text.Trim() + "'," +
20.                    "Gender='" + cbGender.Text.Trim() + "'," +                   
21.                    "Phone='" + mkPhone.Text.Trim() + "'," +
22.                    "Address='" + txtAddress.Text.Trim() + "'," +
23.                    "EMail='" + txtEmail.Text.Trim() + "'," +
24.                    "UserName='" + txtUserName.Text.Trim() + "'," +
25.                    "Password='" + txtPassword.Text.Trim() + "' " +
26.                    "WHERE IDCard='" + IDCard + "'";
27.                using (SqlCommand cm = new SqlCommand(sql, Program.cn))
28.                {
29.                    if (Program.connection())
30.                    {
31.                        try
32.                        {
33.                            cm.ExecuteNonQuery();
34.                        }
35.                        catch (Exception ex)
36.                        {
37.                            MessageBox.Show("เกิดข้อผิดพลาดในส่วนของการแก้ไขข้อมูล เนื่องจาก " + ex.Message, "เกิดปัญหา", MessageBoxButtons.OK, MessageBoxIcon.Error);
38.                            return;
39.                        }
40.                    }
41.                }
42.                MessageBox.Show("การแก้ไขข้อมูลเรียบร้อยแล้ว", "สำเร็จ", MessageBoxButtons.OK, MessageBoxIcon.Information);
43.            }
44.            else
45.            {
46.                string sql = "INSERT INTO TBEmployee(IDCard,FName,LName,Gender,Phone,Address,EMail,UserName,Password) " +
47.                    "VALUES('" + mkIDCard.Text.Trim() + "','" + txtFName.Text.Trim() +
48.                    "','" + txtLName.Text.Trim() + "','" + cbGender.Text.Trim() +
49.                    "','" + mkPhone.Text.Trim() + "','" + txtAddress.Text.Trim() +
50.                    "','" + txtEmail.Text.Trim() + "','" + txtUserName.Text.Trim() +
51.                    "','" + txtPassword.Text.Trim() + "')";
52.                using (SqlCommand cm = new SqlCommand(sql, Program.cn))
53.                {
54.                    if (Program.connection())
55.                    {
56.                        try
57.                        {
58.                            cm.ExecuteNonQuery();
59.                        }
60.                        catch (Exception ex)
61.                        {
62.                            MessageBox.Show("เกิดข้อผิดพลาดในส่วนของการบันทึกข้อมูล เนื่องจาก " + ex.Message, "เกิดปัญหา", MessageBoxButtons.OK, MessageBoxIcon.Error);
63.                            return;
64.                        }
65.                    }
66.                }
67.                MessageBox.Show("การบันทึกข้อมูลเรียบร้อยแล้ว", "สำเร็จ", MessageBoxButtons.OK, MessageBoxIcon.Information);
68.            }
69.            if (checkAdmin())
70.            {
71.                showGridEmployee("SELECT * FROM TBEmployee ORDER BY IDCard");
72.            }
73.            else
74.            {
75.                showGridEmployee("SELECT * FROM TBEmployee WHERE IDCard='" + Program.emp_id + "'");
76.            
77.            clear();
78.            gbEmployee.Enabled = false;           
79.        }


Code (C#) Program.cs
01.public static bool checkMaskedBox(MaskedTextBox objectMK)
02.        {
03.            if (objectMK.Text.Replace("_", "") == "" || objectMK.Text.Replace("_", "").Length < 13)
04.            {
05.                return true;
06.            }
07.            else
08.            {
09.                return false;                             
10.            }
11.        }
12. public static bool checkTextBox(TextBox objectTXT)
13.        {
14.            if (objectTXT.Text == "")
15.            {
16.                return true;
17.            }
18.            else
19.            {
20.                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 : 8536 Reply : 6
 

 

No. 1



โพสกระทู้ ( 74,059 )
บทความ ( 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#)
01.Boolean ChkDup = false;
02. 
03.var DSTamp = DATASET.TBEmployee.GroupBy(it => it.IDCard).Where(g => g.Count() >= 2).FirstOrDefault().ToList();
04. 
05.if (DSTamp.Count > 0)
06.{
07.     ChkDup = true;
08.     return;
09.}


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

 

No. 3



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



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


Code (VB.NET)
01.    Dim intNumRows As Integer
02.    strSQL = "SELECT COUNT(*) FROM customer WHERE CustomerID = '"& Me.txtCustomerID.Text &"' "     
03.    objCmd = New SqlCommand(strSQL, objConn)
04.    intNumRows = objCmd.ExecuteScalar()
05. 
06.    IF intNumRows > 0 Then
07.        Me.pnlAdd.Visible = False
08.        Me.lblStatus.Visible = True
09.        Me.lblStatus.Text = "CustomerID already exist."
10.    Else   
11.     
12. 
13.        strSQL = "INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) " & _
14.        " VALUES " & _
15.        " ('" & Me.txtCustomerID.Text & "','" & Me.txtName.Text & "','" & Me.txtEmail.Text & "', " & _
16.        " '" & Me.txtCountryCode.Text & "','" & Me.txtBudget.Text & "','" & Me.txtUsed.Text & "')"
17. 
18.        objCmd = New SqlCommand
19.        With objCmd
20.           .Connection = objConn
21.           .CommandText = strSQL
22.           .CommandType = CommandType.Text        
23.        End With
24.                         
25.        Me.pnlAdd.Visible = False
26.        Try
27.            objCmd.ExecuteNonQuery()           
28.            Me.lblStatus.Text = "Record Inserted"
29.            Me.lblStatus.Visible = True
30.        Catch ex As Exception
31.            Me.lblStatus.Visible = True
32.            Me.lblStatus.Text = "Record can not insert Error ("& ex.Message &")"
33.        End Try
34. 
35.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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





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