منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : mysql sql كيف الحاق اسم ثابت لكل الاسماء؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله و بركاته
mysql sql كيفية الحاق اسم ثابت لكل الاسماء الموجودة في عمود معين في جدول في قاعدة بيانات mysql
عن طريق كود التحديث 
update
شكر الله لكم جميعا

كود :
Public Sub Dirupdate()
    Using con As New MySqlConnection(str)
        Dim folder As String = "atts\\"
        Dim fn As String = ""
        Using cm As New MySqlCommand("", con)
            cm.Parameters.Clear()
            Dim dr As MySqlDataReader
            cm.CommandText = "select `attachname` from `mybb_attachments` where `aid`in (2,3,4,5,6,7)"
            If con.State = ConnectionState.Closed Then con.Open()
            dr = cm.ExecuteReader
            Dim c As Integer = 0
            While dr.Read
                cm.Parameters.Clear()
                cm.CommandText = "update `mybb_attachments` set `attachname`='" & folder & dr(0) & "' where `aid` in (2,3,4)"
                cm.ExecuteNonQuery()
            End While
            dr.Close()
            If con.State = ConnectionState.Open Then con.Close()
        End Using
    End Using
    Button1.Invoke(Sub() Button1.Enabled = True)
End Sub
هذا الكود يواجه مشكلة القراءة والتحديث فلا بد من الغلق اولا لكن لم اتوصل لاسلوب صحيح
الحل البديل باستخدام DataTable و بعض تفاصيل اخرى.
تعديل
كود :
Public Sub Dirupdate()
   Using con As New MySqlConnection(Str)
       Dim folder As String = "atts\\"
       Dim  sql = "update `mybb_attachments` set `attachname`=CONCAT('" & folder & "',`attachname`) where `aid` in (2,3,4,5,6,7)"
       Using cm As New MySqlCommand(sql, con)
           If con.State = ConnectionState.Closed Then con.Open()
           cm.ExecuteNonQuery()
           If con.State = ConnectionState.Open Then con.Close()
       End Using
   End Using
   Button1.Invoke(Sub() Button1.Enabled = True)
End Sub

مع انه الافضل عدم اضافت اسم المجلد في العمود لتتحكم في تغيير اسم المجلد في اي وقت - وتستطيع اضافت اسم المجلد في select مثل
كود :
Function Dirselect(ByVal attachfolder As String) As DataTable
   Dim dt As New DataTable
   Dim sql = "select `aid`,CONCAT('" & attachfolder & "',`attachname`) as 'attachname'  from `mybb_attachments`"
   Using da As New MySqlDataAdapter(sql, con)
       da.Fill(dt)
   End Using
   Return dt
End Function
(01-11-25, 05:35 AM)Zuhare كتب : [ -> ]تعديل
كود :
Public Sub Dirupdate()
   Using con As New MySqlConnection(Str)
       Dim folder As String = "atts\\"
       Dim  sql = "update `mybb_attachments` set `attachname`=CONCAT('" & folder & "',`attachname`) where `aid` in (2,3,4,5,6,7)"
       Using cm As New MySqlCommand(sql, con)
           If con.State = ConnectionState.Closed Then con.Open()
           cm.ExecuteNonQuery()
           If con.State = ConnectionState.Open Then con.Close()
       End Using
   End Using
   Button1.Invoke(Sub() Button1.Enabled = True)
End Sub

مع انه الافضل عدم اضافت اسم المجلد في العمود لتتحكم في تغيير اسم المجلد في اي وقت - وتستطيع اضافت اسم المجلد في select مثل
كود :
Function Dirselect(ByVal attachfolder As String) As DataTable
   Dim dt As New DataTable
   Dim sql = "select `aid`,CONCAT('" & attachfolder & "',`attachname`) as 'attachname'  from `mybb_attachments`"
   Using da As New MySqlDataAdapter(sql, con)
       da.Fill(dt)
   End Using
   Return dt
End Function

شكر الله لك و بارك فيك.