![]() |
|
[VB.NET] البحث عن جزء من الـ Row فقط واستحضار مقابله - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [VB.NET] البحث عن جزء من الـ Row فقط واستحضار مقابله (/showthread.php?tid=12726) |
البحث عن جزء من الـ Row فقط واستحضار مقابله - Doctor GME - 11-07-15 السلام عليكم ورحمة الله وبركاته أعمل على برنامج قاموس من الإنجليزية للعربية والعكس وتواجهنى مشكلة فى الترجمة من عربى إلى إنجليزى حيث يوجد فى قاعدة البيانات أحياناً عدة معانى عربية للكلمة الواحدة مثل: وبالتالى اعتماداً على الصورة يجب أن أبحث عن (ترتيب-تسوية) كى يطابقها البرنامج مع (arrangement) أريده عندما أكتب (ترتيب) فقط أو (تسوية) فقط يجد المطابق وهو (arrangement) كود وظيفة البحث: كود : Function argetword(ByVal content As String) As Stringوأيضاً كود وظيفة زر الترجمة: كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickRE: البحث عن جزء من الـ Row فقط واستحضار مقابله - سعود - 16-07-15 إستخدم contains اولا تحقق هل تحتوي او يحتوي العمود على الشرطة"-" اذا نعم تحقق هل العمود او الحقل يحتوي الكلمة المطلوبة. RE: البحث عن جزء من الـ Row فقط واستحضار مقابله - Doctor GME - 16-07-15 بالنسبة للجزء الأول الحقل لابد أن يحتوى على - فى جميع الكلمات فلا توجد كلمة لها معنى واحد فقط أما بالنسبة للجزء الثانى فقد حاولت تغيير عبارة: Using adp As New OleDb.OleDbDataAdapter("SELECT * FROM [Words]", connectionString) إلى Using adp As New OleDb.OleDbDataAdapter("SELECT English FROM [Words] WHERE Arabic LIKE '%" & content & "%'", connectionString) ولم تنجح أيضاً يظهر البرنامج رسالة خطأ تقول Column Arabic doesn't belong to table مع العلم أننى تأكدت من صحة أسماء الجدول والعمودين RE: البحث عن جزء من الـ Row فقط واستحضار مقابله - سعود - 16-07-15 اخي الكريم ساجهز باذن الله مثال سريع لتعرف فكرتي بشكل اسرع كود : Imports System.Data.OleDbRE: البحث عن جزء من الـ Row فقط واستحضار مقابله - الطالب - 16-07-15 سلام اأنصحك تنسخ اسم العمود وتلصقه في الكود كود : Using adp As New OleDb.OleDbDataAdapter("SELECT [English] FROM [Words] WHERE [Arabic] LIKE @Arabic", connectionString)موفقين RE: البحث عن جزء من الـ Row فقط واستحضار مقابله - Doctor GME - 16-07-15 (16-07-15, 05:31 AM)سعود كتب : اخي الكريم ساجهز باذن الله مثال سريع لتعرف فكرتي بشكل اسرع شكراً لك أخى ولكنى لم أستطع تطبيقه على Function الخاصه بى فكما ترى كود زر الترجمة فقط يحتوى على تطبيق ال function وهذا كى أسهل على نفسى التعديل على كل وظيفة من البرنامج مستقلة دون أن أضع كل شىء فى مكان واحد لذا أرجو أن تحاول وضع المثال ليتلاءم مع ال function (16-07-15, 06:27 AM)الطالب كتب : سلام شكراً على اهتمامك وضعته ولم يعمل علماً بأننى قمت من قبل وأيضاً الآن بنسخ إسم العمود ووضعه داخل الكود ولكن ظهرت رسالة الخطأ كالمعتاد: Column Arabic doesn't belong to table RE: البحث عن جزء من الـ Row فقط واستحضار مقابله - الطالب - 16-07-15 سلام هل جربت الكود - لاني جربته قبل وضعه في المشاركه وشغال تمام - اذا ظلت المشكله ضع الكود كامل لنشوف موفقين RE: البحث عن جزء من الـ Row فقط واستحضار مقابله - Doctor GME - 16-07-15 (16-07-15, 07:46 AM)الطالب كتب : سلام البرنامج يقبله بلا مشاكل ولكن عند استخدام البرنامج تظهر رسالة الخطأ وها هو الكود بالكامل: Function argetword(ByVal content As String) As String Try Using adp As New OleDb.OleDbDataAdapter("SELECT [English] FROM [Words] WHERE [Arabic] LIKE @Arabic", connectionString) adp.SelectCommand.Parameters.AddWithValue("@Arabic", "%" & content & "%") Using tbl As New DataTable If adp.Fill(tbl) > 0 Then For Each row As DataRow In tbl.Rows Dim en As String = row.Item("English") Dim ar As String = row.Item("Arabic") content = System.Text.RegularExpressions.Regex.Replace(content, ar, en, System.Text.RegularExpressions.RegexOptions.IgnoreCase) Next End If End Using End Using Return content Catch ex As Exception MsgBox(ex.Message) Return String.Empty End Try End Function وها هى صورة قاعدة البيانات: وأيضاً صورة رسالة الخطأ:
RE: البحث عن جزء من الـ Row فقط واستحضار مقابله - الطالب - 16-07-15 سلام انت طلبj في جمله الاستعلام الناتج يكون فقط English فكيف تريد ان تقرا العمود Arabic ولم تطلب ان يكون من ضمن النتائج بعد select كود : SELECT [English], [Arabic] FROM [Words] WHERE [Arabic] LIKE @Arabicموفقين RE: البحث عن جزء من الـ Row فقط واستحضار مقابله - Doctor GME - 16-07-15 (16-07-15, 09:34 AM)الطالب كتب : سلام ههههه لا تؤاخذنى إنه الصيام شكراً لك يعمل جيداً الآن ولكن المشكلة التى فى بداية الموضوع كما هى لم تحل حيث أن الجزء الخاص ب: WHERE [Arabic] LIKE '%" & content & "%'" لا يعمل فلو كتبت كلمة (ترتيب) كما فى الصور المرفقة بالموضوع الأصلى يعيدها البرنامج لى مرة أخرى وكأنه لم يجدها فى قاعدة البيانات ولكن إذا كتبت الخانة بالكامل (ترتيب-تسوية) يترجمها البرنامج إلى arrangement وهذا يدل على أن البرنامج متصل جيداً بقاعدة البيانات فما الحل؟؟؟؟ |