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

Syntax errorخطأ جملة الاستعلام insert into

مغلق
بدأه usama said في 6 يونيو 2007 · 8 رد · 1,047 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الافاضل

السلام عليكم

قاعدة البيانات sqlserver 2000

cmd.CommandText = "insert into mytable (s1,s2,s3)values( " & TextBox1.Text & ",'" & DateTimePicker1.Value & "','" & TextBox2.Text & "')"

cmd.ExecuteNonQuery()

الخطأ فعليا فى هذا الجزء

'" & DateTimePicker1.Value &"'

لانى حذفته ووضعت مكانه قيمة تاريخ ثابته فتم الادخال وكان الموضوع مع الاكسس تمام باستخدام الهاش لكن مع السكوال 2000 لا سنجل ولا هاش ولا بدون اى منهما يقبل الادخال ويعطى هذا الخطا

Syntax error converting datetime from character string

مع العلم ان نوع الحقل datetime

#3

اخى لقد جربت علامة الشارب التى ذكرتها وجربت السنجل كوتشن ومع ذلك يعطى هذا الخطأ

#4

أظن أنه يجب عليك تغيير نوع الحقل من datetime إلى smalldatetime لأن في حالة datetime يحفظ الوقت على الشكل

2007-02-02 00:00:00.000 أي أنه يحفظ أجزاء الثانية أيضا ... بينما في حالة smalldatetime يتم حفظ الوقت على الشكل

2007-02-02 00:00:00 و هدا يطابق طريقة حفظ الوقت ب DateTimePicker ..

و أرجو أن يكون في هدا الجواب على سؤالك ..

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#5

الطريقة الافضل هي استخدام parameters كما يلي

cmd.CommandText = "insert into mytable (s1,s2,s3)values(  @s1,S2,s3)"
cmd.Parameters.AddWithValue("@s1", TextBox1.Text )
cmd.Parameters.AddWithValue("@s2", DateTimePicker1.Value )
cmd.Parameters.AddWithValue("@s3", TextBox2.Text )

 cmd.ExecuteNonQuery()

كذلك جرب عمل

string.Format(DateTimePicker1.Value,"dd/mm/yyyy")

#6

الاخوة الافاضل جزاكم الله خيرا

الاخ Fikou-sama

شكرا على مشاركتك لكن الحل غير صحيح

لان الخطا "Syntax error" اى فى الجملة وليس له علاقة بالقاعدة

الاخ TareqVB

شكرا لك حلك الخاص ب

cmd.CommandText = "insert into mytable (s1,s2,s3)values( @s1,@S2,@s3)"

cmd.Parameters.AddWithValue("@s1", TextBox1.Text )

cmd.Parameters.AddWithValue("@s2", DateTimePicker1.Value )

cmd.Parameters.AddWithValue("@s3", TextBox2.Text )

cmd.ExecuteNonQuery()

نجح فى الحفظ لمرة واحدة

وعند اعادة ادخال بيانات سجل جديد وحفظها اعطى رسالة الخطا التالية

The variable name '@s1' has already been declared. Variable names must be unique within a query batch or stored procedure.

#7

جرب هدا الكود ..

cmd = New SqlCommand("insert into mytable (s1,s2,s3)values( @s1,@S2,@s3)")
		cmd.Parameters.AddWithValue("@s1", TextBox1.Text)
		cmd.Parameters.AddWithValue("@s2", DateTimePicker1.Value)
		cmd.Parameters.AddWithValue("@s3", TextBox2.Text)
		cmd.ExecuteNonQuery()
		cmd.Dispose()

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#8
اقتباس
نجح فى الحفظ لمرة واحدة

وعند اعادة ادخال بيانات سجل جديد وحفظها اعطى رسالة الخطا التالية

The variable name '@s1' has already been declared. Variable names must be unique within a query batch or stored procedure.

حلها بسيط

cmd.commandtext="......
cmd.parameters.clear
#9

جزاكم الله خيرا ونفع بكم

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

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