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
شكر الله لك و بارك فيك.
|