الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد ان اعمل insert مباشرة

مغلق
بدأه no_mercy في 28 مارس 2005 · 8 رد · 828 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف انفذ جملة insert عند حدث معين بحيث يقوم باخذ القيم من ملف نصي وتحويلها لقاعدة بيانات

انا اعرف كيفية استرجاع البيانات

وشكرا

#2

إستخدم 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

الكود كتبته على السريع ولم ادققه على الجهاز، لكنه كفيل بإعطائك الفكرة الاساسية لذلك

تحياتي

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

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

#3

شكرا يا اخي على الرد

ولكن المشكلة انو انا اريد استخدام البراميتر ونفس الوقت قاعدة البيانات التي استخدمها اكسيس

واريد ان انفذ هضا الكود في تكرار المشكلة نة عند وضع cmd.ExecuteNonQuery

يعطيني مشكلة عليها طبعا مع تحويل الكود الى اكسيس

ارجو المساعدة وبسرعة

#4

ورينا الكود على شان نقدر انشوف وين الخطأ فيه

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

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

#5

أكيد كتبت شيء خطأ داخل جملة sql

حاول تتأكد من أنك في التاريخ بتضع ## وفي النص '' لأن ده بيولد خطأ

#6

يا اخوان انا كتبت الكود واحصل على الداتا من خلال ملف نصي

اجزء السطر الى عدة متغييرا ت وهذة المتغييرات هي قيم البيانات التي يجب ان تدخل الى قاعدة البيانات

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

فيها او ان المشكلة في انا لا اعرف كيف انفذها

وشكرا

#7

اولا تحتاج لاستخدام new عن التعريفات

dim cmd as new OleDbcommand

ثانيا ما هي ال oparameter ؟؟؟

ثالثا: لا تحدد حجم المعامل اذا كان رقمي

رابعا: انت تستخدم متغيرات مثل par1,par2 ولم تقوم بتعريفهم

command.parameters.add(new oparameter("par1,oledbtype.integer,

لا يقوم بإنشاء متغير اسمه par1 في الفيجوال بيزيك، هذا خاص بالاسم في قاعدة البيانات

عرف الباراميتر بشكل منفصل وليس بجملة واحدة حتى تستطيع إستخدامها فيما بعد

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

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

#8

شكرا يا

بس لو ما فيهاش ثقلة عليك ممكن تكتب الكود لاني لست خبير

وامنا انا مجرد مبتدا

وشكرا

#9

السلام عليكم ورحمة الله وبركاتة

حياك الله اخوي 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

اللهم صلي على محمد وعلى آل محمد كما صليت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد

وبارك على محمد وعلى آل محمد كما باركت على إبراهيم وعلى آل إبراهيم إنك حميد مجيد

هذا الموضوع مغلق.

مواضيع مشابهة