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

مساعده في جملة الأنسرت

بدأه ~AS~ في 8 أبريل 2012 · 22 رد · 1,309 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أتمنى مساعدتي في أقرب وقت ممكن إذا أمكن وأنا مأملة فيكم خير

لدي أستفسار في جملة الأنسرت حيث أنه:-

لدي داله فيها جملة الأنسرت أرسل إليها 6 أو 15 قيمه مع أسماء الأعمده طبعاً يطلع خطأ وقت أستدعاء هذه الداله ويقول أن السنتكس خطأ ولم أعرف ماهو الخطأ

برغم من أستخدامي نفس هذه الداله ولكن لخمس قيم ويقبل ويضيف إلى الجدول عادي دون مشاكل

وإليكم هذه الداله

علماً أنها مرتبطه بلغة .net

[

Sub insert_cod15(ByVal tab As String, ByVal col1 As String, ByVal col2 As String, ByVal col3 As String, ByVal col4 As String, ByVal col5 As String, ByVal col6 As String, ByVal col7 As String, ByVal col8 As String, ByVal col9 As String, ByVal col10 As String, ByVal col11 As String, ByVal col12 As String, ByVal col13 As String, ByVal col14 As String, ByVal col15 As String, ByVal text1 As TextBox, ByVal text2 As TextBox, ByVal text3 As TextBox, ByVal text4 As TextBox, ByVal text5 As TextBox, ByVal text6 As TextBox, ByVal text7 As TextBox, ByVal text8 As TextBox, ByVal text9 As TextBox, ByVal text10 As TextBox, ByVal text11 As TextBox, ByVal text12 As TextBox, ByVal text13 As TextBox, ByVal text14 As TextBox, ByVal text15 As TextBox)

Try

Open_connection()

cmd.Connection = conn

cmd.CommandText = "INSERT INTO " + tab + " (" + col1 + "," + col2 + "," + col3 + "," + col4 + "," + col5 + "," + col6 + "," + col7 + "," + col8 + "," + col9 + "," + col10 + "," + col11 + "," + col12 + "," + col13 + "," + col14 + "," + col15 + ")" & _

"values ('" & text1.Text & "','" & text2.Text & "','" & text3.Text & "','" & text4.Text & "','" & text5.Text & "','" & text6.Text & "','" & text7.Text & "','" & text8.Text & "','" & text9.Text & "','" & text10.Text & "','" & text11.Text & "','" & text12.Text & "','" & text13.Text & "','" & text14.Text & "','" & text15.Text & "') "

cmd.ExecuteNonQuery()

conn.Close()

Catch ex As Exception

Exit Sub

End Try

End Sub

تم تعديل هذه المشاركة بواسطة ~AS~ في 8 أبريل 2012 في 21:30

#2

السلام عليكم

اولا انصحك باستخدام طرق اخرى للتخزين (تجدها في قسم ado.net واقسام الدوت نت) .

وبالنسبة للاجابة على سؤالك نرجو ذكر الخطأ الذي يظهر عندك .

#3

أولاً شكر على الرد

المشكله بالضبط أنه يقول خطأ في السنتكس

#4

الاحتمالات

عدد الحقول لايطابق عدد المدخلات

وجود فراغ في اسم حقل

في الادخال يوجود فاصلة , او ' او "

او انك نسيت ان تغلق نص ب '

#5
TareqVB كتب:

الاحتمالات

عدد الحقول لايطابق عدد المدخلات

وجود فراغ في اسم حقل

في الادخال يوجود فاصلة , او ' او "

او انك نسيت ان تغلق نص ب '

جربت كل الأحتمالات

والمشكله أنه ينفذ بس عند الوصول لجملة الأنسرت أثناء التنفيذ يطلع خطأ في السنتكس

#7
TareqVB كتب:

حاول ان تظهر جملة الاستعلام عن طريق طباعة cmd.CommandText في شاشة immediate window او باية طريقة اخرى وانظر الى المشكلة

لم أفهم بس أنا متأكده من الكود

#8

يعني بعد تعريف جملة الادخال في جملة

cmd.CommandText = "INSERT INTO " .....

تصبح جملة الادخال موجودة في cmd.CommandText فنريد ان نعرف هذه الجملة

ممكن وضع textbox1 على الفورم او الصفحة ووضع هذه الجملة به مثل

textbox1.Text =cmd.CommandText

وبعد ذلك انسخ هنا الذي يظهر في مربع النص .

او باية طريقة اخرى .

#9

غير علامة + الي & في الجملة

#10
TareqVB كتب:

يعني بعد تعريف جملة الادخال في جملة

cmd.CommandText = "INSERT INTO " .....

تصبح جملة الادخال موجودة في cmd.CommandText فنريد ان نعرف هذه الجملة

ممكن وضع textbox1 على الفورم او الصفحة ووضع هذه الجملة به مثل

textbox1.Text =cmd.CommandText

وبعد ذلك انسخ هنا الذي يظهر في مربع النص .

او باية طريقة اخرى .

آه فهمت أنا اعملها أثناء التتبع

المهم طلعت كلها صح كتالي مع العلم أن الخطأ مازال موجود:-

INSERT INTO store (no_bag,NO_S,Blood_name,date_call,date_exp,note)values ('1111111114',' EE333','AB+','11/04/2012 01:45:01 م','15/05/2012 01:45:01 م','متبرع ')

KARIMSOFT كتب:

غير علامة + الي & في الجملة

جربت وما نفع نفس المشكله

#12

هي نفس 15 حقل يعني نفس المشكله يطلع خطأ

Syntax error in INSERT INTO statement.

عندما يصل إلى cmd.ExecuteNonQuery()

والذي أستغرب منه أنه عندما أعمل 5 حقول يقبل عادي ويضيف بس عند 6 أو 15 حقل يطلع هذا الخطأ

تم تعديل هذه المشاركة بواسطة ~AS~ في 11 أبريل 2012 في 20:09

#13
اقتباس
والذي أستغرب منه أنه عندما أعمل 5 حقول يقبل عادي ويضيف بس عند 6 أو 15 حقل يطلع هذا الخطأ

لذا اظهر الجملة المتعلقة ب 15 حقل حتى نستطيع تحديد المشكلة .

#14

INSERT INTO donaters (no_Donor,donaters_name,blood_Dono,name_patient,blood_patient,hospital,word,no_bag,NO_S,date_call,date_exp,HCV,HIV,MAL,VDRL)values ('0',' ali','A+','amal','A+',' العسكري ','الباطنيه','1111111115',' EE33','11/04/2012 08:33:31 م','15/05/2012 08:33:31 م',' 33',' 1',' 4',' 7')

تم تعديل هذه المشاركة بواسطة ~AS~ في 11 أبريل 2012 في 20:36

#15

أخي الكريم يمكن الخطأ في الترتيب (ترتيب الحقول والقيم )

سوف أحاول أعادة كتابة جملة الأنسرت من جديد وأجرب

وإذا لم أستطع أكيد سوف أعود

بالمناسبه لدي سؤال أخر:-

إذا أردت أظهار ساله تحذيريه عن عدد الأيام المتبقيه لأنتهاء سلعه أو جرعة دم وعند إنتهاءها يقوم بحذفها مثلاً

هل سيكون الكود التالي صحيح:-

Open_connection()

cmd.CommandText = "Select date_exp from store where date_exp - Now = 0 "

cmd.Connection = conn

rder = cmd.ExecuteReader

If rder.Read Then

MsgBox("يرجى مراجعة شاشة المخازن لقد أنتهت بعض الجرع وتم تحولها إلى الجرع الفارغه ")

'نقل الجرع المنتهيه إلى جدول الجرع المنتهيه وحذفها من المخزن

With cmd

.CommandText = " Select empId, empFirstName, empLastName, emgAge into expired from store"

#17
TareqVB كتب:

لمعرفة الفرق في الايام نستخدم

datediff(dd , date_exp , getdate())

أنا لا أريد هذه الداله

أنا أريد أخذ تاريخ الأنتهاء المحفوظ في الجدول عند بداية تشغيل النظام ومن ثم يقارنه مع التاريخ الحالي بحيث إذا أنتهت يظهر رساله أنه أنتهت

أو يظهر رساله أنها سوف تنتهي بعد مثلاً 10 أيام

أنا حاولت بس ما نفع

cmd.CommandText = "Select date_exp from store where date_exp -'" & Now & " = 0' "

cmd.Connection = conn

rder = cmd.ExecuteReader

If rder.Read Then

MsgBox("يرجى مراجعة شاشة المخازن لقد أنتهت بعض الجرع وتم تحولها إلى الجرع الفارغه ")

cmd.CommandText = "Select date_exp from store where date_exp - " + Now + " = 10"

cmd.Connection = conn

rder = cmd.ExecuteReader

If rder.Read Then

MsgBox("يرجى مراجعة شاشة المخازن يوجد 10 إيام لإنتهاء بعض الجرع ")

#18
اقتباس
أنا لا أريد هذه الداله

لماذا لاتريدها ؟؟؟؟

اقتباس
أنا أريد أخذ تاريخ الأنتهاء المحفوظ في الجدول عند بداية تشغيل النظام ومن ثم يقارنه مع التاريخ الحالي بحيث إذا أنتهت يظهر رساله أنه أنتهت

نفس المطلوب موجود في رد المشرف TareqVB

datediff(dd , date_exp , getdate())

يعني

cmd.CommandText = "Select date_exp from store where datediff(dd , date_exp , getdate())= 0  "

والعفو

وما من كاتب إلا سيفنى *** ويبقى الدهر ماكتبت يــداه

فلا تكتب بكفك غير شيء *** يسرك في القيامة ان تراه

لا تنسى تشجيعي بالنقر على

add.png اذا كانت مشاركتي مفيدة
#19
realdie10 كتب:

لماذا لاتريدها ؟؟؟؟

لأنها لم تضبط معي فقلت أجرب طريقه ثانيه ولم تنفع :sad:

#20
~AS~ كتب:

لأنها لم تضبط معي فقلت أجرب طريقه ثانيه ولم تنفع :sad:

يا اخي تضبط 100% الا اذا كان الحقل ليس من نوع datetime او smalldatetime

وما من كاتب إلا سيفنى *** ويبقى الدهر ماكتبت يــداه

فلا تكتب بكفك غير شيء *** يسرك في القيامة ان تراه

لا تنسى تشجيعي بالنقر على

add.png اذا كانت مشاركتي مفيدة
#21

أشكركم جميعاً وأعلم أني قد أثقلت عليكم

بس والله يا أخي ماضبطت معي ومازلت أحاول وأحاول

ونوع الحقل datetime

وعلى فكره أنا بنت ولست ولد

#23

Undefined Function ' getdate' in expression

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