PDA

View Full Version : اشکال در دستور آپدیت



shaima
شنبه 14 شهریور 1388, 04:01 صبح
سلام
میخوام یه رکورد از تیبلم رو آپدیت کنم در جایی که pk قرار داره، از این کد استفاده کردم:


count=Int32.Parse(dt.Rows[0]["id"].ToString());
command.CommandText = "update Table_1 set name=@name,t=@t where id='count'";
ولی موقع اجرا روی قسمت ExecuteNonQuery این ارور رو میده :
Conversion failed when converting the varchar value 'count' to data type int.

مشکلش کجاست؟

در ضمن اینکه تو دستور اپدیت قسمت wehre درست هست یا نه؟! از نظر نحوه مقداردهی id با متغیر count

ممنون

M.YasPro
شنبه 14 شهریور 1388, 06:58 صبح
سلام دوست عزیز
شما نباید متغیر Count رو داخل ' ' قرار بدی.



command.CommandText = "update Table_1 set name=@name,t=@t where id=count";

shaima
شنبه 14 شهریور 1388, 11:39 صبح
سلام دوست عزیز
شما نباید متغیر Count رو داخل ' ' قرار بدی.

کد:
command.CommandText = "update Table_1 set name=@name,t=@t where id=count";
سلام

در این صورت این ارور رو به دستور تعریف count میگیره:
Object reference not set to an instance of an object.

اگر هم تعریف count رو حذف کنم و کوتیشن رو بردارم این ارور رو میده:
Invalid column name 'count'.

cccccccccc
شنبه 14 شهریور 1388, 11:57 صبح
سلام
command.CommandText =String.Format( "update Table_1 set name=@name,t=@t where id='{0}'",count);

shaima
شنبه 14 شهریور 1388, 12:05 عصر
نقل قول: اشکال در دستور آپدیت
سلام
command.CommandText =String.Format( "update Table_1 set name=@name,t=@t where id='{0}'",count);

سلام

من دستور رو اینجوری نوشتم:

ag_sqldb_Command.CommandText = string.Format("update Table_1 set name=@name,t=@t where id='{0}',count");

باز از خط مقدار دهی count این ارور رو میگیره:
Object reference not set to an instance of an object.

cccccccccc
شنبه 14 شهریور 1388, 12:12 عصر
آخرین دابل کوتیشن رو قبل از آخرین کاما بذار

shaima
شنبه 14 شهریور 1388, 12:15 عصر
آخرین دابل کوتیشن رو قبل از آخرین کاما بذار

این کار رو هم کردم ولی بازم از خط مقدار دهی count همون ارور قبلی رو میگیره :متفکر:

cccccccccc
شنبه 14 شهریور 1388, 12:26 عصر
اون نام و تی رو کجا تعریفیدی؟

shaima
شنبه 14 شهریور 1388, 12:35 عصر
اون نام و تی رو کجا تعریفیدی؟



command.Parameters.AddWithValue("@name",comboBox1.SelectedItem.ToString());
command.Parameters.AddWithValue("@t",textBox3.Text);


من این تیکه از برنامه(نه تیکه بالا البته، کل قطعه کد مربوط به این قسمت) رو از برنامه اصلیم جدا کردم و تو یه فرم جدا نوشتم برای تست، الان که تیکه کدی رو که گفتید تو برنامه اصلی تغییر دادم هیچ اروری نداد ولی هیچ آپدیتی هم انجام نشد :(
هدف من از این تیکه کد اینه که رکورد جاری رو آپدیت کنم، برای اینکار pk این روکورد رو در متغیر count قرار میدم.
یعنی مشکل کجاست که اولا این کد تو یه فرم جدید ارور میده ولی در برنامه اصلی درسته؟! بعدم چرا آپدیت در برنامه اصلی انجام نمیشه؟!
ممنون

Open-Source
شنبه 14 شهریور 1388, 12:57 عصر
count یه کلمه تعریف شده در sql هست.
بهتره که عوضش کنی یا بصورت Parameters کار کنی.

shaima
شنبه 14 شهریور 1388, 13:05 عصر
count یه کلمه تعریف شده در sql هست.
بهتره که عوضش کنی یا بصورت Parameters کار کنی.

سلام
من کلمه کانت رو عوض کردم ولی بازهم رکورد آپدیت نمیشه :ناراحت:
به صورت پارامتر کار کنم یعنی چی؟!