كيف انفذ جملة insert عند حدث معين بحيث يقوم باخذ القيم من ملف نصي وتحويلها لقاعدة بيانات
انا اعرف كيفية استرجاع البيانات
وشكرا
كيف انفذ جملة insert عند حدث معين بحيث يقوم باخذ القيم من ملف نصي وتحويلها لقاعدة بيانات
انا اعرف كيفية استرجاع البيانات
وشكرا
إستخدم command object مع جملة insert وضعهم في الحدث الذي تريد ان يتم التنفيذ به، وسوف يتم الاضافة بشكل مباشر دون الحاجة لتدخل DataAdapter
dim cmd as new Sqlcommand("insert into mytable(field1,field2) values(@p1,@p2)",con)
cmd.parameters.add("@p1",sqldbtype.int).value = 10
cmd.parameters.add("@p2",SqlDbType.VarChar,30).value = "myvalue")
cmd.ExecuteNonQueryالكود كتبته على السريع ولم ادققه على الجهاز، لكنه كفيل بإعطائك الفكرة الاساسية لذلك
تحياتي
لا تحزن:
إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.
لا تحزن:
فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.
شكرا يا اخي على الرد
ولكن المشكلة انو انا اريد استخدام البراميتر ونفس الوقت قاعدة البيانات التي استخدمها اكسيس
واريد ان انفذ هضا الكود في تكرار المشكلة نة عند وضع cmd.ExecuteNonQuery
يعطيني مشكلة عليها طبعا مع تحويل الكود الى اكسيس
ارجو المساعدة وبسرعة
ورينا الكود على شان نقدر انشوف وين الخطأ فيه
لا تحزن:
إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.
لا تحزن:
فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.
أكيد كتبت شيء خطأ داخل جملة sql
حاول تتأكد من أنك في التاريخ بتضع ## وفي النص '' لأن ده بيولد خطأ
يا اخوان انا كتبت الكود واحصل على الداتا من خلال ملف نصي
اجزء السطر الى عدة متغييرا ت وهذة المتغييرات هي قيم البيانات التي يجب ان تدخل الى قاعدة البيانات
dim command as oledbcommand
dim insertcmd as string
insertcmd="insert into tabel(col1,col2) values(?,?))
command.parameters.add(new oparameter("par1,oledbtype.integer,2)
command.parameters.add(new oparameter("par2,oledbtype.integer,2)
command.commandtext=new oledbcommand(insertcmd,connection)
الان اريد ان يتم ادخال البيانات خلال جمل داخل تكرار
dim a1,a2 as string
until eof()
par1.value=a1
par2.value=a2
command.executenonquery
loop
انا متأكد انو في بعض الاخطاء في هذا الكود والمششكلة ليست هنا ولكن هذة الفكرة التي اريد ان اوصلها لكم
انو تنفيذ جملة executenonquery
فيها او ان المشكلة في انا لا اعرف كيف انفذها
وشكرا
اولا تحتاج لاستخدام new عن التعريفات
dim cmd as new OleDbcommand
ثانيا ما هي ال oparameter ؟؟؟
ثالثا: لا تحدد حجم المعامل اذا كان رقمي
رابعا: انت تستخدم متغيرات مثل par1,par2 ولم تقوم بتعريفهم
command.parameters.add(new oparameter("par1,oledbtype.integer,
لا يقوم بإنشاء متغير اسمه par1 في الفيجوال بيزيك، هذا خاص بالاسم في قاعدة البيانات
عرف الباراميتر بشكل منفصل وليس بجملة واحدة حتى تستطيع إستخدامها فيما بعد
لا تحزن:
إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.
لا تحزن:
فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.
شكرا يا
بس لو ما فيهاش ثقلة عليك ممكن تكتب الكود لاني لست خبير
وامنا انا مجرد مبتدا
وشكرا
السلام عليكم ورحمة الله وبركاتة
حياك الله اخوي no_mercy .. بالنسبة لطلبك انا ما فهمت ماذا تحتاج .. ولكن سأشرح كيف يتم الاتصال بقاعدة البيانات عن طريق الـ vb.net .. وإن شاء الله سوف تستطيع بعد ذلك التلاعب بتعليمات لغة SQL كما تريد .. وذلك بوضعها داخل حلقة او غيره
اولا يجب عليك تعريف Object يكون مسؤول عن الاتصال بقاعدة البيانات والذي فهمته انك تستخدم الاكسيس واليك الكود
Dim con As New OleDb.OleDbConnection
ثم تحدد الـمزود Provider وهو يمثل اذا كانت اكسيس او SQL Server وفي حالتك اكسيس ثم تحدد مكان قاعدة البيانات DataSource في جهازك وانصحك وضعها داخل مجلد الـ Bin داخل مجلد مشروعك وبذلك تستغني عن وضع المسار مثل الدرايف D:/ واليك الكود
con.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=Db1.mdb"
ثم تفتح الاتصال بقاعدة البيانات عن طريق الكود التالي
con.Open()
ثم تعرف Object يكون مسؤول عن اعطاء الاوامر ..بهذا الكود
Dim com As New OleDb.OleDbCommand
ثم تربط كائن الاوامر بكائن الاتصال لانه قد يكون عندك اكثر من اتصال بقواعد بيانات مختلفة فالبرنامج يحتاج ان يعرف ان كائن الاوامر هذا سيتعامل مع كائن الاتصال هذا .. واليك الكود
com.Connection = con
اعلم ان ما ذكرته سابقا هو اساس اي اتصال بقاعدة البيانات وسيتكرر بكل برامجك اضافة الى قطع الاتصال واذكر كوده بالاخير .. فيجب حفظه عن ظهر قلب
الان بحكم انك تريد امر Insert فهنا تكتب امره .. وذلك عن طريق الكود التالي
com.CommandText = "Insert into table1 Values(111,'Ali')" com.ExecuteNonQuery()
وفهمت من كلامك انك تريد ادخال البيانات باستخدام متغيرات .. فلنفرض انك تريد ان يكون الاسم الاول في المتغير x واسم الاب في المتغير y فاستخدم الكود التالي
com.CommandText = "insert into table1 values('" & x & "','" & y & "')"
com.ExecuteNonQuery()ثم اذا انتهيت فتحتاج قطع الاتصال بقاعدة البيانات وذلك بالكود التالي
con.Close()
وللعلم تستطيع وضع الاكواد الاساسية التي قلت انها يجب ان تحفظ في الفورم لوود وتستطيع تكرار استخدام كائن الامر داخل تعليمات مختلفة داخل برنامجك ولكن لا تنسى وضع كود قطع الاتصال داخل Form_Closed و زر الخروج الخاص ببرنامجك
واخيرا اتمنى اني افدتك...
تم تعديل هذه المشاركة بواسطة koao في 31 مارس 2005 في 02:55
اللهم صلي على محمد وعلى آل محمد كما صليت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد
وبارك على محمد وعلى آل محمد كما باركت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد
هذا الموضوع مغلق.