تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التحويل إلى قاعدة بيانات أكسس
#15
(28-04-15, 12:02 AM)sami2015 كتب : Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Subtitles.accdb"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

   TextBox2.Text = ReplaceTranslate(TextBox1.Text)

End Sub


Function ReplaceTranslate(ByVal txt As String) As String
   Try
       Using adp As New OleDb.OleDbDataAdapter("SELECT * FROM [Subtitles]", connectionString)
           Using tbl As New DataTable
               If adp.Fill(tbl) > 0 Then
                   For Each row As DataRow In tbl.Rows
                       txt = System.Text.RegularExpressions.Regex.Replace(txt, row.Item("English"), row.Item("Arabic"), System.Text.RegularExpressions.RegexOptions.IgnoreCase)
                   Next
               End If
           End Using
       End Using
       Return txt
   Catch ex As Exception
       MsgBox(ex.Message)
   End Try
End Function

لقد قمت بتعديل الكود
حذفت function بالكامل ووضعت الكود كله فى مهام Button1_Click فأصبح كالتالى:
كود :
Using connectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MovieDic1.0.0.0.0.accdb")
               connectionString.Open()
               Try
                   Using adp As New OleDb.OleDbDataAdapter("SELECT * FROM [Subtitles]", connectionString)
                       Using tbl As New DataTable
                           If adp.Fill(tbl) > 0 Then
                               For Each row As DataRow In tbl.Rows
                                   TextBox2.Text = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, row.Item("English"), row.Item("Arabic"), System.Text.RegularExpressions.RegexOptions.IgnoreCase)
                               Next
                           End If
                       End Using
                   End Using
               Catch ex As Exception
                   MsgBox(ex.Message)
               End Try
           End Using

ولكن هناك مشكلة حيث أن البرنامج لا يستحضر إلا ال row الأخير من قاعدة البيانات فقط
فأنا قد أضفت 7 صفوف من ملف txt كتجربة للكود
فإذا كتبت النص الإنجليزى فى أى صف من الصفوف الـ 6 الأولى يعيده البرنامج دون ترجمته
وكأنه غير موجود فى قاعدة البيانات أما الصف السابع يعمل جيداً
بحثت على جوجل ووجدت حل يقول أن على إضافة & كى تعمل جميع الصفوف
أضفتها كالتالى:

كود :
TextBox2.Text &= System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, row.Item("English"), row.Item("Arabic"), System.Text.RegularExpressions.RegexOptions.IgnoreCase)

وفعلاً جميع الصفوف تعمل ولكن البرنامج يبحث عن النص فى جميع الصفوف
انظر لهذه الصورة:
http://www9.0zz0.com/2015/04/29/15/551686480.jpg

كما تلاحظ تم تكرار النص الانجليزى 6 مرات وهى عدد الصفوف التى لا تحتوى على النص
وكتابته بالعربية مرة واحدة وهو الصف الوحيد المحتوى عليه
هل تستطيع مساعدتى فى تعديل هذا الخطأ؟؟؟
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: التحويل إلى قاعدة بيانات أكسس - بواسطة Doctor GME - 29-04-15, 04:47 PM


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


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