PDA

View Full Version : سوال: مشکل در اضافه کردن رکورد



Marjan_Bala
دوشنبه 25 شهریور 1387, 01:32 صبح
با سلام
من از SQL خود asp.net2005 استفاده می کنم ، هنگام درج رکورد با مقادیر زیر تو جدول با این Error مواجه میشم:
: Incorrect syntax near '07'.
اینم دستوری که باهاش میخوام رکوردو درج کنم:



insert into ResRezerve(ResCode,UserCode,Count,DateTimeRez) values( 'راديکال5','IMAN_AL',12,2008/10/22 07:00:00 ق.ظ)

در ضمن فیلد DateTimeRez منم از نوع smaldatetime هست ،جالب اینه که اگه همین مقادیرو خودم دستی تو جدول وارد کنم هیچ خطایی نمیده ولی با کدنویسی وقتی میخوام رکوردو اضافه کنم هنگام ExecuteReader() کردن این دستور Error میده.
به نظر شما اشکال از کجاست؟

amirferdowsi
دوشنبه 25 شهریور 1387, 01:40 صبح
سلام
دوست عزیز چرا ExecuteReader :متعجب::اشتباه:
شما باید از ExecuteNonQuery() استفاده کنید .


SqlConnection obj_Connection = new SqlConnection();
obj_Connection.ConnectionString = "ConnectionString Text";
SqlCommand obj_Command = new SqlCommand("Command Text", obj_Connection);
obj_Command.CommandType = CommandType.Text;
obj_Connection.Open();
obj_Command.ExecuteNonQuery();
obj_Connection.Close();

Marjan_Bala
دوشنبه 25 شهریور 1387, 02:23 صبح
با عرض سلام و وقت بخیر
دوست من از ExecuteNonQuery(); هم استفاده کردم ولی دقیقا همون Error رو میده!

amirferdowsi
دوشنبه 25 شهریور 1387, 04:00 صبح
سلام
اگه میشه کدتون رو اینجا قرار بدید تا بتونیم بهتر راهنمایی کنیم .

milade
دوشنبه 25 شهریور 1387, 06:18 صبح
سلام دوست عزیز
شما مثل اینکه فرمت تاریخ رو فراموش کردید
باید این طوری بفرستید: #2008/10/22 07:00:00 ق.ظ#

که به کل می شه این:

SqlConnection obj_Connection = new SqlConnection();
obj_Connection.ConnectionString = "ConnectionString Text";
SqlCommand obj_Command = new SqlCommand("insert into ResRezerve(ResCode,UserCode,Count,DateTimeRez) values( 'راديکال5','IMAN_AL',12,#2008/10/22 07:00:00 ق.ظ#)", obj_Connection);
obj_Command.CommandType = CommandType.Text;
obj_Connection.Open();
obj_Command.ExecuteNonQuery();
obj_Connection.Close();


موفق و پیروز باشید

Marjan_Bala
دوشنبه 25 شهریور 1387, 15:08 عصر
با سلام
دوستان از راهنماییهاتون ممنونم ولی مشکل من هنوز حل نشده!
وقتی که از ## استفاده می کنم این Error رو میده:
The name "#2008" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.
کدی هم که استفاده میکنم اینه:



SqlConnection connect;
SqlCommand cmd;



connect = new SqlConnection( "MyConString");
connect.Open();

cmd = new SqlCommand("insert into ResRezerve(ResCode,UserCode,Count,DateTimeRez) values( 'راديکال5','IMAN_AL',12,2008/10/22 09:00:00 ق.ظ)", connect);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery ();
connect.Close();

وقتی که به ساعتش میرسه Error میده ، :Incorrect syntax near '09'.
کارم گیر کرده اگه براتون مقدوره کمکم کنید.

Marjan_Bala
دوشنبه 25 شهریور 1387, 17:17 عصر
کسی تاحالا با این مشکل برخورد نکرده؟

Marjan_Bala
دوشنبه 25 شهریور 1387, 18:08 عصر
با سلام
دوست من ، این کدهایی که نوشتی چه ارتباطی به موضوع بحث داشت؟!
مقادیر فیلدهای منم از مقادیر TextBox ها به دست میاد اما وقتی میخوام تو جدول درجشون کنم همون Error رو میده.

Marjan_Bala
دوشنبه 25 شهریور 1387, 20:51 عصر
چرا حالا عصبانی شدی؟!
هنگام اضافه کردن یه رکورد به جدول برنامه Error میده ، به نظر شما ایراد از کدوم قسمت کامپیوتر می تونه باشه؟(هارد،رم،کارت گرافیک،مادر برد،...)
ولی من همه اینارو چک کردم بازم درست نشد!

el_abdollahi
سه شنبه 26 شهریور 1387, 10:41 صبح
مقدار تاریخت رو توی '' هم گذاشتی؟

Marjan_Bala
سه شنبه 26 شهریور 1387, 13:10 عصر
بله وقتی توی '' میذارم! خطای زیرو میده:
can not convert string to datetime

kezack
سه شنبه 26 شهریور 1387, 19:18 عصر
فکر کنم آن قسمت از برنامتونو بزارید اینجا زودتر به نتیجه میرسید

dr.pantagon
سه شنبه 26 شهریور 1387, 21:52 عصر
فکر می کنم به خاطر فظای کم تو اس کیو ال باشه
اگر برات فرقی نداره بردار nvchar کن هم سرچ رو داری و هم این مشکل به احتمال زیاد دیگه پیش نمی یاد

kezack
سه شنبه 26 شهریور 1387, 22:05 عصر
حق با دوستمون هست من همین مشکل رو داشتم با تغییر DataType مشکلم حل شد

Marjan_Bala
پنج شنبه 28 شهریور 1387, 12:17 عصر
ممنون از جواباتون
آخرش نوعشو همون Nvarchar گرفتم اینجوری موقع جستجو یه خورده اذیت میشم ولی خب چاره ای نیست دیگه!

ennovation
پنج شنبه 28 شهریور 1387, 14:39 عصر
این کد رو امتحان کن و به جای تاریخی که من دادم 01.01.1753 تاریخ خودت را بذار / بهم بگو که کار میکنه یا نه / موفق باشی

(CONVERT(DATETIME, '1753-01-01 00:00:00', 102

Marjan_Bala
جمعه 29 شهریور 1387, 00:23 صبح
دوست من ، من همه اینارو امتحان کردم ولی جواب نداد،به قول اون tarhebartar (http://barnamenevis.org/forum/member.php?u=56432) شاید مشکل از کامپیوتره!!
راستی در مورد اون آرگومان سوم میشه یکم توضیح بدی که چیه؟(102؟)