التحويل إلى قاعدة بيانات أكسس - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : التحويل إلى قاعدة بيانات أكسس (/showthread.php?tid=12173) الصفحات:
1
2
|
التحويل إلى قاعدة بيانات أكسس - Doctor GME - 26-04-15 بسم الله الرحمن الرحيم باختصار شديد لدى برنامج قاموس يستخدم ملف txt كقاعدة بيانات كالتالى: وأريد أن أحوله لقاعدة بيانات أكسس تحتوى على عمودين وأريد مساعدة فى تعديل الكود كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click علماً بأن button1 هو المسئول على الترجمة شكراً لكم مقدماً RE: التحويل إلى قاعدة بيانات أكسس - حريف برمجة - 27-04-15 لو ترفق مثال مصغر // ستجد سرعة في الرد RE: التحويل إلى قاعدة بيانات أكسس - sami2015 - 27-04-15 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Using con As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb") con.Open() Dim txt As String = IO.File.ReadAllText("Subtitles.txt") For Each line As String In txt.Trim.Split(vbNewLine) If line.Trim.Split("\").Count = 2 Then Using cmd As New OleDb.OleDbCommand("INSERT INTO [table] ([ar], [en]) VALUES (@ar, @en)", con) Dim ar As String = line.Trim.Split("\").First.Trim Dim en As String = line.Trim.Split("\").Last.Trim cmd.Parameters.AddWithValue("@ar", ar) cmd.Parameters.AddWithValue("@en", en) cmd.ExecuteNonQuery() End Using End If Next con.Close() End Using End Sub RE: التحويل إلى قاعدة بيانات أكسس - Doctor GME - 27-04-15 (27-04-15, 12:16 AM)حريف برمجة كتب : لو ترفق مثال مصغر // ستجد سرعة في الرد هذه يا أخى صورة من قاعدة بيانات أكسس التى أود استخدامها بدلاً من ملف txt http://www12.0zz0.com/2015/04/27/00/615433999.jpg علماً بأن العمود الأول المسمى id لا أحتاجه فى البرنامج وإنما تركته لأعرف مدى تطور قاعدة البيانات مع مرور الوقت ولذا أريد تنفيذ الكود الذى وضعته ولكن بعد أن أستغنى على ملف txt وأستعمل العمودين arabic و english فى الأكسس شكراً لاهتمامك (27-04-15, 12:50 AM)sami2015 كتب : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click شكراً لمجهودك يا غالى ولكنى أريد أن أستغنى تماماً عن ملف txt وأنا سانقله يدوياً إلى قاعدة بيانات الأكسس كل ما أريده هو ربط قاعدة الأكسس بالبرنامج بنفس طريقة الكود السابق علماً بأن إسمها (Subtitles.accdb) وكما بالصورة بها عمودين English و Arabic http://www12.0zz0.com/2015/04/27/00/615433999.jp RE: التحويل إلى قاعدة بيانات أكسس - sami2015 - 27-04-15 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try If TextBox1.Text.Trim <> "" And TextBox2.Text.Trim <> "" Then Using con As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Subtitles.accdb") con.Open() Using cmd As New OleDb.OleDbCommand("INSERT INTO [Subtitles] ([Arabic], [English]) VALUES (@Arabic, @English)", con) cmd.Parameters.AddWithValue("@Arabic", TextBox1.Text.Trim) cmd.Parameters.AddWithValue("@English", TextBox2.Text.Trim) cmd.ExecuteNonQuery() End Using con.Close() End Using MsgBox("Saved") End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub RE: التحويل إلى قاعدة بيانات أكسس - Doctor GME - 27-04-15 أشكرك كثيراً على مجهودك أخى الغالى قاعدة البيانات الآن متصلة بـ text boxes جيداً ولكنك أسأت فهمى فالمفروض أن الزر يستحضر البيانات من القاعدة ولا يضيف عليها فالبرنامج برنامج قاموس يترجم من العربية للإنجليزية عذراً لأننى لم أكن واضحاً RE: التحويل إلى قاعدة بيانات أكسس - sami2015 - 27-04-15 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 = GetTranslate(TextBox1.Text) End Sub Function GetTranslate(ByVal word As String) As String Try Using adp As New OleDb.OleDbDataAdapter(Nothing, connectionString) Using tbl As New DataTable adp.SelectCommand.CommandText = "SELECT [Arabic] FROM [Subtitles] WHERE [English]=@English" adp.SelectCommand.Parameters.AddWithValue("@English", word) If adp.Fill(tbl) > 0 Then Return tbl.Rows(0).Item("Arabic") adp.SelectCommand.CommandText = "SELECT [English] FROM [Subtitles] WHERE [Arabic]=@Arabic" adp.SelectCommand.Parameters.AddWithValue("@Arabic", word) If adp.Fill(tbl) > 0 Then Return tbl.Rows(0).Item("English") End Using End Using Catch ex As Exception MsgBox(ex.Message) End Try End Function RE: التحويل إلى قاعدة بيانات أكسس - Doctor GME - 27-04-15 أشكرك بشدة يا غالى تم ربط قاعدة البيانات بنجاح المشكلة الأخيرة أن الكود الأول الذى كنت أستخدمه مع ملف txt كانت به ميزه أنه يترجم الكلمات التى يتعرف عليها القاموس أما الكلمات أو الجمل التى ليست موجوده فى قاعدة البيانات فإنه يكتبها كما هى بالانجليزيه أما الكود الجديد فإما أن يكون النص مشابه تماماً لإحدى خانات قاعدة البيانات أو يظهر نتيجة فارغة وهذه الصور توضح لك كلامى أكثر http://www6.0zz0.com/2015/04/27/18/392743431.jpg http://www2.0zz0.com/2015/04/27/18/790928400.jpg ولك جزيل الشكر أخى على مجهودك RE: التحويل إلى قاعدة بيانات أكسس - sami2015 - 27-04-15 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click For Each line As String In TextBox1.Text.Split(vbNewLine) TextBox2.Text &= GetTranslate(line) & vbNewLine Next TextBox2.Text = TextBox2.Text.Trim End Sub Function GetTranslate(ByVal word As String) As String Try Using adp As New OleDb.OleDbDataAdapter(Nothing, connectionString) Using tbl As New DataTable adp.SelectCommand.CommandText = "SELECT [Arabic] FROM [Subtitles] WHERE [English]=@English" adp.SelectCommand.Parameters.AddWithValue("@English", word.Trim) If adp.Fill(tbl) > 0 Then Return tbl.Rows(0).Item("Arabic") adp.SelectCommand.CommandText = "SELECT [English] FROM [Subtitles] WHERE [Arabic]=@Arabic" adp.SelectCommand.Parameters.AddWithValue("@Arabic", word.Trim) If adp.Fill(tbl) > 0 Then Return tbl.Rows(0).Item("English") Return word.Trim End Using End Using Catch ex As Exception MsgBox(ex.Message) End Try End Function RE: التحويل إلى قاعدة بيانات أكسس - Doctor GME - 27-04-15 دعنى أوضح لك أكثر أخى العزيز لا أقصد أن يكون كل نص فى سطر وإنما كان هذا أحد الأمثلة إنما أقصد أن يتعرف القاموس على الكلمة أو الجملة التى تكون محتوى خانة فى جدول قاعدة البيانات فيترجمها فى حين يضع باقى النص كما هو دون تغيير قد يكون النص الغير مترجم فى سطر وحده أو داخل العبارة أو حتى جزء من الجملة وهذه صورة أخرى للتوضيح: http://www6.0zz0.com/2015/04/27/19/591703890.jpg سألفت نظرك لبعض الجمل فى الكود القديم مثل Dim translatedText As String = TextBox1.Text ثم فى كود تنفيذ النص: If words.Length = 2 And translatedText.Contains(word) Then translatedText = translatedText.Replace(word, words(+1)) مما يجعل البرنامج يبدل الكلمة أو الجملة بمقابلها تاركاً باقى النص بنفس الشكل عاجز عن شكرك بما يكفى لهذا المجهود |