PDA

View Full Version : سوال: ویرایش اطلاعات



sozlar
چهارشنبه 29 مهر 1388, 10:12 صبح
میخواهم اطلاعات موجود در tableخود را در فرم ویرایش کنم ولی با errorزیر که تصویر آن را ضمیمه نموده ام روبرو میشوم
لطفا راهنمایی بفرمایید
کد من بصورت زیر است:

SqlCommand cmd = new SqlCommand();
cmd.Connection = new myConnection().Cnn;
cmd.CommandText = "update categories set category=@category where ccode=@ccode";
cmd.Parameters.Add("@ccode", SqlDbType.Int).Value = txtccode.Text;
cmd.Parameters.Add("@category", SqlDbType.VarChar).Value = txtcategory.Text;

cmd.ExecuteNonQuery();

Arash_janusV3
چهارشنبه 29 مهر 1388, 10:53 صبح
سلام

sql connetion con = new sql connection();
اینا که ساختی

در انتهای دستورت
اینم بزن

con.open();
cmd.executenonquery();
con.close();

خبرشا بهم بده

happy65_sh
چهارشنبه 29 مهر 1388, 11:14 صبح
دوست عزيز خطايي كه مي ده مربوط ميشه به syntax كوئريت. احتمالا كوئريت دنباله نداشته؟
مثلا چندتا شرط داشته اي و بين شرط هات به جاي استفاده از and از كاما(,)استفاده كرده اي.

sozlar
چهارشنبه 29 مهر 1388, 11:29 صبح
من connectionو کدهای مربوط به آن را در یک کلاس نوشتم و در آخر هم آن را closeکردم
ولی باز هم خطا را میدهد

sozlar
چهارشنبه 29 مهر 1388, 11:33 صبح
دوست عزيز خطايي كه مي ده مربوط ميشه به syntax كوئريت. احتمالا كوئريت دنباله نداشته؟
مثلا چندتا شرط داشته اي و بين شرط هات به جاي استفاده از and از كاما(,)استفاده كرده اي.



من جایی شرط نذاشتم بلکه از دستور updateاستفاده کردم که در بالا قسمتی از کدها رو گذاشتم چون tableمن 74فیلد داره بقیشو نذاشتم
ولی نمیدونم منظورش از , کجاست

sozlar
چهارشنبه 29 مهر 1388, 11:36 صبح
دوست عزيز خطايي كه مي ده مربوط ميشه به syntax كوئريت. احتمالا كوئريت دنباله نداشته؟
مثلا چندتا شرط داشته اي و بين شرط هات به جاي استفاده از and از كاما(,)استفاده كرده اي.

من هیچ جا شرط نذاشتم بلکه فقط از دستور updateکه در بالا گذاشتم استفاده کردم

Arash_janusV3
چهارشنبه 29 مهر 1388, 11:48 صبح
دستورت باید کامل باشه
, یا زیادی یا تو اون کدت نمی شناسه
کدتا که کامل ندیدیم بگیم کجاست
بهترین کار اینکه خط به خط اجراش کن و مقدارشا ببین و جایی مقدار نداد همونه

sozlar
چهارشنبه 29 مهر 1388, 13:09 عصر
دستورت باید کامل باشه
, یا زیادی یا تو اون کدت نمی شناسه
کدتا که کامل ندیدیم بگیم کجاست
بهترین کار اینکه خط به خط اجراش کن و مقدارشا ببین و جایی مقدار نداد همونه



راستش خط به خط هم اجرا کردم
تمام خطها رو رد میکنه و درست درexecutenonqueryهمون خطارو میده

happy65_sh
چهارشنبه 29 مهر 1388, 13:22 عصر
مسلما در خط


cmd.ExecuteNonQuery();
خطا ميده.آيا وقتي خط به خط اجرا كردي همه پارامتر هات مقدار دهي شدند؟يا اينكه مثلا txtcategory.Text راتهي وارد كردي و ازش رد شدي؟

sozlar
شنبه 02 آبان 1388, 08:35 صبح
مسلما در خط


cmd.ExecuteNonQuery();
خطا ميده.آيا وقتي خط به خط اجرا كردي همه پارامتر هات مقدار دهي شدند؟يا اينكه مثلا txtcategory.Text راتهي وارد كردي و ازش رد شدي؟


راستش وقتی خط به خط اجرا کردم از تمام خطها گذشت و رسید به ExecuteNonQuery و آنجا همان خطا را داد ولی خودم بعد متوجه شدم که در دستور updateیکسری از فیلدها رو کامل ننوشتم (چون تعداد فیلدها خیلی زیاد بود)ولی کامپایلر از اونها میگذشت
البته الان مشکل حل شد ولی من آخرش متوجه نشدم چرا با اجرای خط به خط باز هم مشخص نمیشد که برخی فیلدها کامل مقدار دهی نشده؟!!!

sara.f
شنبه 02 آبان 1388, 11:48 صبح
راستش وقتی خط به خط اجرا کردم از تمام خطها گذشت و رسید به ExecuteNonQuery و آنجا همان خطا را داد ولی خودم بعد متوجه شدم که در دستور updateیکسری از فیلدها رو کامل ننوشتم (چون تعداد فیلدها خیلی زیاد بود)ولی کامپایلر از اونها میگذشت
البته الان مشکل حل شد ولی من آخرش متوجه نشدم چرا با اجرای خط به خط باز هم مشخص نمیشد که برخی فیلدها کامل مقدار دهی نشده؟!!!
سلام
به خاطر اینکه تا زمانیکه به برنامه با دستور
cmd.ExecuteNonQuery(); نگید که تغییرات را بر روی دیتا بیس اعمال کن، برنامه دیدی نسبت به فیلدهایتان در دیتا بیس ندارد و زمانیکه با این دستور می خواهد تغییرات را بر روی دیتا بیس اعمال کند به ماهیت فیلدهایتان در دیتا بیس پی می برد و خطا را اعلام می کند.
مثلا اگر شما الان این خط را بردارید و خطایی که قبلا داشتید را تکرار کنید، خواهید دید که هیچ errorای نمی دهد و عملی بر روی دیتا بیس نیز انجام نمی دهد.