منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : The DataAdapter.SelectCommand property needs to be initialized
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

ترددت كثيرا في طرح هذا السؤال وقد بحتث كثيرا بالمنتديات الاجنبية عن سبب هذه الرسالة ولم اجد جواب ، لا يوجد لها جواب محسوم .
وقلت ربما المشكلة هي في طريقة برمجتي .

حولت ليلة كاملة ان اجد الحل ولكن لم تنجح ، وقررت ان المشكلة في توزيع الكود .
لن اطيل عليكم ولكن باختصار .

بداية هناك Module تم تعريف فيه محول البيانات كالتالي :

PHP كود :
Friend FbDataReader As FbDataAdapter 


طبعا لا تستغربوا من FbDataAdapter فمن لا يعرفها هي للتعامل مع قواعد بيانات FireBird

لتعبئة الداتاست 

PHP كود :
( FbDataReader = New FbDataAdapter("select * from TABLE_MAIN"con)

 Try

            FbDataReader
.Fill(Form1.DataSet1Form1.DataSet1.Tables("[size=small][font=Monaco, Consolas, Courier, monospace]TABLE_MAIN[/font][/size]").TableName)
                
 
Catch ex As Exception
          
  MsgBox
(ex.Message)

        Finally 


الـ DataSet موجودة على الـ Form1 ومرتبطة بواسطة DatasourceBinding 


هناك نموذج أخر عليه ادوات TextBox ربطتها يدويا في الـ FormLoad

PHP كود :
txtnum.DataBindings.Add("TEXT"Form1.BindingSource1"NUM"True


الان لاحظوا موديل فيه محول البيانات ونموذج عليه الداتاست ونمودج اخر عليه ادوات العرض

في زر الحفظ بالنموذج الثاني الذي عليه ادوات العرض

PHP كود :
Dim builder As FbCommandBuilder = New FbCommandBuilder(FbDataReader)
 
       builder.QuotePrefix "["
 
       builder.QuoteSuffix "]"
 
       Form1.BindingSource1.EndEdit()
 
       Me.Validate()
 
       Try

            builder
.GetUpdateCommand()
 
        
            FbDataReader
.Update(Form1.DataSet1Form1.DataSet1.Tables(0).TableName)
 
           Form1.DataSet1.AcceptChanges()
 
           builder.RefreshSchema()

 
           '  Me.Text = Form1.DataSet1.Tables("TABLE_MAIN").Rows(Form1.BindingSource1.Position).Item("id").ToString
            ' 
Form1.BindingSource1.ResetBindings(True)
 
       Catch ex As Exception
            MsgBox
(ex.Message)
 
       Finally
            builder
.Dispose()
 
       End Try 


عند اجراء تغييرات وحفظ البيانات يحفظها المرة الاولى بشكل طبيعي
ولكن عند اجراء تغييرات المرة الثانية تظهر الرسالة التي بالعنوان حتى لو اقفلت النمودج وعدت من جديد .


من مر بهذه المشكلة من قبل .
السلام عليكم و رحمة الله و بركاته
الاخ الكريم viv, كنظرة سريعة.
PHP كود :
Dim builder As FbCommandBuilder = New FbCommandBuilder(FbDataReader
ما هو الكائن FbDataReader ..?? المفروض يكون كائن من النوع DataAdapter
العمل مع CommandBuilder لاغراض بسيطة , لن يسد لك عطشك في التعاملات الكبيرة.
------------------------------------------------------------------------
نصيحة.
بما انك خارج من مدرسة الدلفي العملاقة و لك باع فيها .
فالافضل لك اذا كنت تود الابحار في فضاء (Net.)
ان تبدأ من اخر التقنيات و ليس ممن انقرض او اوشك على الانقراض.
ابدأ مع Ling To SQL - Entity FrameWork
و حاول ان يكون عملك معتمد على اسلوب N-Tier Data Applications

غريب ان تبدأ مع Vb.Net و ليس مع #C كونك مبرمج دلفي
اذ ان Syntax الخاص بلغة دلفي اقرب الى #C
وعليكم السلام ورحمة الله وبركاته

اهلا اخي ابو ليلى

FbDataReader  قارئ البيانات للمكتبة التي تتعامل مع قواعد بيانات FireBird المفتوحة المصدر

انا لا اتعامل مع قواعد بيانات Access ولو على سبيل التجربة او المرور

والله بالنسبة للدلفي هي تؤدي المطلوب منها وزيادة وتكفي كامل احتياجاتي ولم تخذلني حتى الان .

كنت فيما سبق قد بدأت مع الدوت نت ومع الفيجوال وفي بداياته ومع او اصدارة ظهرت قبل النسخة 2005 وبدأت وقتها مع الكثير من الشخصيات المعروفة اليوم في عالم الدوت نت .

ولكن تركتها وتوجهت الى الدلفي ، وتركتها ولازال راسخ بدهني الاسلوب القديم ، ولا علم لي بما تطور بعدها لانني ركزت كامل أنتباهي على الدلفي .

والان وبعد ان اكملت تعلم ما احتاجه في الدلفي قررت العودة لفتح مجال اوسع في البرمجة لالعب كيفما اشاء وباي لغة اشاء .

الاسلوب N-Tier Data Applications هو ما افضله حقيقة ، فانا استخدم نفس الشئ في دلفي تقريبا .

اما الـ C# فحقيقة لا مشكلة عندي معها ، فهي والـ VB تشابهت كثيرا ويمكنني الكتابة بها .

ولكن كما قلت بدايتي كانت مع الـ VB لهذا اتجهت لها مباشرة .

بالنسبة الى هذا المثال هنا هو ليس مشروع او ما شابه وانما تجربة لتطبيق الدروس القديمة فقط .