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,027

HOME > .NET Framework > Forum > (VB) ห้ามทำการ Update ข้อมูลที่ซ้ำกับข้อมูลใน Gridview (เชื่อมกับ sqlserver) ถ้าซ้ำให้เเสดงข้อความเตือน ทำยังไงค่ะ



 

(VB) ห้ามทำการ Update ข้อมูลที่ซ้ำกับข้อมูลใน Gridview (เชื่อมกับ sqlserver) ถ้าซ้ำให้เเสดงข้อความเตือน ทำยังไงค่ะ

 



Topic : 128451



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



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




เช่น ในฐานข้อมูลเรา เป็นเเบบนี้

__________id______code______min______max
edit______1______A1______ 0 ______ 499.99
edit______2______A1______500______1999.99
editt______3______A1______2000______ NULL
editt______4______A2______ 500 ______1599.99
editt______5______A2______1600______ 3000
edit______6______B2______1000 ______3999.99
editt______7______B2______4000______ 1000

ถ้าเรา edit >update > id : A1
เป็น min = 600 max = 800
จะเเสดงว่าข้อความว่า ข้อมูลซ้ำ (เอาไปเปรียบเทียบกับ A1 ตัวที่เหลือค่ะ ส่วนค่า NULL หมายถึง max 2000+ ขึ้นไป)



เรื่องที่สองคือ ตอน update ถ้าเราไม่ใส่อะไรเลยในช่อง max จะทำให้ หมายถึง NULL ค่ะ


อันนี้ โค้ดส่วน update ค่ะ
Code (VB.NET)
 Private Sub GridView_promotion_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GridView_promotion.RowUpdating

 Using sqlconn As New OleDbConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
            Dim cmd As New OleDbCommand()
            cmd.Connection = sqlconn

            cmd.CommandText = "UPDATE promotion SET  product = ?,min_price = ?, max_price = ?, discount = ? WHERE promotion_id = ?"
            cmd.CommandType = CommandType.Text

            Dim strpromotion_id As String = GridView_promotion.DataKeys(e.RowIndex).Item(0).ToString
            Dim a As TextBox = GridView_promotion.Rows(e.RowIndex).Cells(3).Controls(0)
            Dim strproduct As String = CType(GridView_promotion.Rows(e.RowIndex).Cells(3).Controls(0), TextBox).Text
            Dim strminP As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(4).Controls(0), TextBox).Text
            Dim strmaxP As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(5).Controls(0), TextBox).Text
            Dim strDis As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(7).Controls(0), TextBox).Text


            cmd.Parameters.Add("@p_product", OleDbType.VarChar).Value = strproduct
            cmd.Parameters.Add("@p_min", OleDbType.Decimal).Value = strminP
            cmd.Parameters.Add("@p_max", OleDbType.Decimal).Value = strmaxP
            cmd.Parameters.Add("@p_dis", OleDbType.Decimal).Value = strDis
            cmd.Parameters.Add("@p_id", OleDbType.Integer).Value = strpromotion_id
            sqlconn.Open()
            cmd.ExecuteNonQuery()
            sqlconn.Close()
        End Using


        GridView_promotion.EditIndex = -1
        BindGridView()
        lblAdd.Visible = True

    End Sub



เราลองทำเเล้ว เเต่พอ update ถึงข้อมูลมันจะไม่ซ้ำกับในฐานข้อมูล มันก็เเสดงข้อความ ข้อมูลซ้ำ อยู่ดี

เราว่าอาจจะเป็นที่คำสั่ง sql เพราะเราเองก็ไม่เเม่นเท่าไหร่ 555+ ถ้าใช่รบกวนช่วยเเนะนำทีค่ะ

ขอบคุณมากๆ
Code (VB.NET)
 Private Sub GridView_promotion_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GridView_promotion.RowUpdating


        Dim cap_promotion_id As Integer = GridView_promotion.DataKeys(e.RowIndex).Item(0).ToString
        Dim cap_productcode As String = CType(GridView_promotion.Rows(e.RowIndex).Cells(3).Controls(0), TextBox).Text
        Dim cap_min As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(4).Controls(0), TextBox).Text
        Dim cap_max As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(5).Controls(0), TextBox).Text
        Dim cap_dis As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(7).Controls(0), TextBox).Text


        If Not InsertProduct(cap_promotion_id, cap_productcode, cap_min, cap_max, cap_dis) Then
        Using sqlconn As New OleDbConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
            Dim cmd As New OleDbCommand()
            cmd.Connection = sqlconn

            cmd.CommandText = "UPDATE promotion SET  product = ?,min_price = ?, max_price = ?, discount = ? WHERE promotion_id = ?"
            cmd.CommandType = CommandType.Text

            Dim strpromotion_id As String = GridView_promotion.DataKeys(e.RowIndex).Item(0).ToString
            Dim a As TextBox = GridView_promotion.Rows(e.RowIndex).Cells(3).Controls(0)
            Dim strproduct As String = CType(GridView_promotion.Rows(e.RowIndex).Cells(3).Controls(0), TextBox).Text
            Dim strminP As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(4).Controls(0), TextBox).Text
            Dim strmaxP As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(5).Controls(0), TextBox).Text
            Dim strDis As Decimal = CType(GridView_promotion.Rows(e.RowIndex).Cells(7).Controls(0), TextBox).Text


            cmd.Parameters.Add("@p_product", OleDbType.VarChar).Value = strproduct
            cmd.Parameters.Add("@p_min", OleDbType.Decimal).Value = strminP
            cmd.Parameters.Add("@p_max", OleDbType.Decimal).Value = strmaxP
            cmd.Parameters.Add("@p_dis", OleDbType.Decimal).Value = strDis
            cmd.Parameters.Add("@p_id", OleDbType.Integer).Value = strpromotion_id
            sqlconn.Open()
            cmd.ExecuteNonQuery()
            sqlconn.Close()
        End Using


        GridView_promotion.EditIndex = -1
        BindGridView()
        lblAdd.Visible = True

        Else
            Response.Write("โปรโมชั่นซ้ำ ErrorXYZ ")
        End If


    End Sub
    Public Function InsertProduct(ByVal Promotionid As Integer, ProductCode As String, CapMin As Decimal, CapMax As Decimal, CapDiscount As Decimal) As Boolean

        Dim reader2 As OleDbDataReader
        Dim comm2 As String
        comm2 = " Select promotion_id "
        comm2 += " FROM promotion"
        comm2 += " where promotion_id = '" & Promotionid & "'"
        comm2 += " (select product ,min_price  ,max_price,discount  "
        comm2 += " FROM promotion "
        comm2 += " where product = '" & ProductCode & "' "
        comm2 += " and (( '" & CapMin & "'  >= min_price and '" & CapMin & "' <= isnull(max_price,99999999)) "
        comm2 += " or ('" & CapMax & "' >= min_price and '" & CapMax & "' <= isnull(max_price,99999999)))) "

        Dim OleComm2 As New OleDbCommand(comm2, sqlconn)
        sqlconn.Open()
        reader2 = OleComm2.ExecuteReader(CommandBehavior.CloseConnection)
        If reader2.HasRows Then
            Return False
        Else
            Return True
        End If
    End Function





Tag : ASP, Web (ASP.NET), VB.NET, VS 2013 (.NET 4.x)









ประวัติการแก้ไข
2017-08-02 10:49:51
2017-08-02 10:51:43
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-08-02 10:47:54 By : NumWhan View : 936 Reply : 1
 

 

No. 1



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

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

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


ข้อ1) อ่านแล้ว งง? ว่าต้องการอะไร
- จะ WHERE ด้วย id: 1,2,3,4,5,6 หรือ WHERE ด้วย code : A1, A2, A3
- ถ้าบอกว่า code นับมามากกว่า 1 ให้บอกว่าซ้ำเลย งั้นก็ select count(code) from abc where code='A1'
- ใน code บรรทัด 12,43 เห็น if InsertProduct(xx1,xx2,xx3,xx4,xx5) else แสดงข้อมูลซ้ำตอนเพิ่มข้อมูล แล้วเกี่ยวอะไรกับ update

ข้อ2) 2. ตอน update ถ้าเราไม่ใส่อะไรเลยในช่อง max จะทำให้ หมายถึง NULL ค่ะ

Dim strmaxP As String = CType(GridView_promotion.Rows(e.RowIndex).Cells(5).Controls(0), TextBox).Text

If (String.IsNullOrEmpty(strmaxP)) Then
cmd.Parameters.Add("@p_max", System.DBNull.Value)
else
cmd.Parameters.Add("@p_max", OleDbType.Decimal).Value = Decimal.Parse(strmaxP)
end if






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-03 01:12:35 By : ccjpn
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : (VB) ห้ามทำการ Update ข้อมูลที่ซ้ำกับข้อมูลใน Gridview (เชื่อมกับ sqlserver) ถ้าซ้ำให้เเสดงข้อความเตือน ทำยังไงค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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