منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
mysql sql كيف الحاق اسم ثابت لكل الاسماء؟ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : mysql sql كيف الحاق اسم ثابت لكل الاسماء؟ (/showthread.php?tid=55486)



mysql sql كيف الحاق اسم ثابت لكل الاسماء؟ - justforit - 31-10-25

السلام عليكم ورحمة الله و بركاته
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
هذا الكود يواجه مشكلة القراءة والتحديث فلا بد من الغلق اولا لكن لم اتوصل لاسلوب صحيح



RE: mysql sql كيف الحاق اسم ثابت لكل الاسماء؟ - justforit - 31-10-25

الحل البديل باستخدام DataTable و بعض تفاصيل اخرى.


RE: mysql sql كيف الحاق اسم ثابت لكل الاسماء؟ - Zuhare - 01-11-25

تعديل
كود :
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



RE: mysql sql كيف الحاق اسم ثابت لكل الاسماء؟ - justforit - 01-11-25

(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

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