تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة فى إضافة حقول جديدة فى جدول موجود
#1
السلام عليكم
لدى مشكلة وأرجو منكم التكرم بالمساعدة فى حلها
لدى كود لإنشاء حقول جديدة فى جدول بناء على حقول يتم إضافتها من المستخدم فى جدول أخر والكود مكتوب بلغة VBA ويعمل بصورة ممتازة وهو كالتالى

كود :
Sub AlterTableX1()
   Dim intLoop As Integer
   Dim strSQL As String
   Dim strSQL1 As String
   For intLoop = 0 To Me.field_row.ListCount - 1
   strSQL = "ALTER TABLE Emp_Sal ADD " & _
   Me.field_row.Column(0, [intLoop]) & "  LONG INTEGER"
   CurrentProject.Connection.Execute strSQL
   strSQL1 = "ALTER TABLE tbl_General ADD " & _
   Me.field_row.Column(0, [intLoop]) & "  LONG INTEGER"
   CurrentProject.Connection.Execute strSQL1
   Next intLoop
'    MsgBox "تمت الإضافة بنجاح", vbOKOnly, "البرنامج "
End Sub
حيث حقل field_row ليست بوكس يتضمن كافة المدخلات من المستخدم ويتم تحويلها إضافتها كأعمدة جديدة فى جدول موجود بقاعدة البيانات
ولكن أريد التحويل الى فيجوال بيسك 2012 حيث أننى فى بداية تعلمى لهذه اللغة الجميلة
الرد
تم الشكر بواسطة:
#2
PHP كود :
      Sub AlterTableX1(field_row As ListBox)
        Dim intLoop As Integer
        Dim strSQL 
As String
        Dim strSQL1 
As String
        
For intLoop 0 To field_row.Items.Count 1
            strSQL 
"ALTER TABLE Emp_Sal ADD " _
            field_row
.Items(intLoop).ToString "  LONG INTEGER"
            FillDataTable(strSQL)
            strSQL1 "ALTER TABLE tbl_General ADD " _
            field_row
.Items(intLoop).ToString "  LONG INTEGER"
            FillDataTable(strSQL1)
        Next intLoop
        MsgBox
("تمت الإضافة بنجاح"MsgBoxStyle.Information"البرنامج ")
    End Sub 
PHP كود :
   Public Function FillDataTable(StrSQL As String) As DataTable
        Dim cn 
As New SqlClient.SqlConnection("Server =(local);database=AlAsemMedicalClinicsDB;integrated security=true")
 
       Dim da As New SqlClient.SqlDataAdapter(StrSQLcn)
 
       Dim dt As New DataTable
        dt
.Clear()
 
       da.Fill(dt)
 
       Return dt
    End 
Function 
الرد
تم الشكر بواسطة: ابو روضة , ابو روضة , egypt 2020 , ابو ليلى
#3
الله يبارك لك أخى قمت بتطبيق الكود المرفق ولكن يظهر لى خطأ "خطأ في بناء الجملة في تعريف حقل." فى الفانكشن FillDataTable
الرد
تم الشكر بواسطة: asemshahen5 , ابو ليلى
#4
تأكد من كود الاتصال بقاعدة البيانات او ضع صورة للخطأ .
الرد
تم الشكر بواسطة: ابو ليلى
#5
(16-02-20, 02:36 PM)asemshahen5 كتب : تأكد من كود الاتصال بقاعدة البيانات او ضع صورة للخطأ .

كود الاتصال لدى:
كود :
Public Function FillDataTable(StrSQL As String) As DataTable
       Dim cn As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\TBLCO.accdb;Persist Security Info=True; Jet OLEDB:Database Password=Hagag2010")
       Dim da As New OleDbDataAdapter(StrSQL, cn)
       Dim dt As New DataTable
       dt.Clear()
       da.Fill(dt)
       Return dt
   End Function
والخطأ يظهر فى الجزء da.Fill(dt)
الرد
تم الشكر بواسطة: ابو ليلى , asemshahen5
#6
معليش ضع مثال مصغر من فورم واحدة و الاكواد و قاعدة البيانات لاستطيع معرفة مكان وجود الخطأ .

و ضع وصورة للخطأ .
الرد
تم الشكر بواسطة: ابو ليلى
#7
السلام عليكم و رحمة الله و بركاته
لم اجرب الكود فقط مجرد نظرة ,
كم مرة سيتم تكرار الدالة FillDataTable على طول الحلقة ؟
الطريقة Da.Fill اليس من المفروض ان تكون بجملة Select لحقول الجدول.

اعذروني على تدخلي.
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد
تم الشكر بواسطة: asemshahen5
#8
PHP كود :
   Sub AlterTableX1(field_row As ListBox)
 
       Dim intLoop As Integer
        Dim strSQL 
As String
        Dim strSQL1 
As String
        For intLoop 
0 To field_row.Items.Count 1
            strSQL 
"ALTER TABLE Emp_Sal ADD " _
            field_row
.Items(intLoop).ToString "  LONG INTEGER"
 
           ExcuteNoneQury(strSQL)
 
           strSQL1 "ALTER TABLE tbl_General ADD " _
            field_row
.Items(intLoop).ToString "  LONG INTEGER"
 
           ExcuteNoneQury(strSQL1)
 
       Next intLoop
        MsgBox
("تمت الإضافة بنجاح"MsgBoxStyle.Information"البرنامج ")
 
   End Sub
    Sub ExcuteNoneQury
(strSQL As String)
 
       Dim cn As New OleDb.OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\TBLCO.accdb;Persist Security Info=True; Jet OLEDB:Database Password=Hagag2010")
 
       Dim Cmd As New OleDb.OleDbCommand(strSQLcn)
 
       If cn.State ConnectionState.Closed Then cn.Open()
 
       Cmd.ExecuteReader()
 
       If cn.State ConnectionState.Open Then cn.Close()
 
   End Sub 
الرد
تم الشكر بواسطة:
#9

.rar   ComSys.rar (الحجم : 1.57 م ب / التحميلات : 1)    
(16-02-20, 09:58 PM)asemshahen5 كتب :
PHP كود :
   Sub AlterTableX1(field_row As ListBox)
 
       Dim intLoop As Integer
        Dim strSQL 
As String
        Dim strSQL1 
As String
        For intLoop 
0 To field_row.Items.Count 1
            strSQL 
"ALTER TABLE Emp_Sal ADD " _
            field_row
.Items(intLoop).ToString "  LONG INTEGER"
 
           ExcuteNoneQury(strSQL)
 
           strSQL1 "ALTER TABLE tbl_General ADD " _
            field_row
.Items(intLoop).ToString "  LONG INTEGER"
 
           ExcuteNoneQury(strSQL1)
 
       Next intLoop
        MsgBox
("تمت الإضافة بنجاح"MsgBoxStyle.Information"البرنامج ")
 
   End Sub
    Sub ExcuteNoneQury
(strSQL As String)
 
       Dim cn As New OleDb.OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\TBLCO.accdb;Persist Security Info=True; Jet OLEDB:Database Password=Hagag2010")
 
       Dim Cmd As New OleDb.OleDbCommand(strSQLcn)
 
       If cn.State ConnectionState.Closed Then cn.Open()
 
       Cmd.ExecuteReader()
 
       If cn.State ConnectionState.Open Then cn.Close()
 
   End Sub 

أسف على تأخرى فى الرد ولكن مازالت المشكلة قائمة ومرفق القاعدة وصورة من الخطأ
الرد
تم الشكر بواسطة: asemshahen5
#10
قاعدة البيانات التي في المرفقات معطوبة يرجى اعادة رفعها الاكسيس عندي 2007 .
الرد
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم