-
مشکل با insert کردن C#
من وقتی میخام از Insert استفاده کنم این ارور رو میده :
SqlConnection MyConnection = new SqlConnection();
MyConnection.ConnectionString = (@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Paaygaah Daade\WarehouseProduct.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand MySqlCommand = new SqlCommand();
MySqlCommand.Connection = MyConnection;
MySqlCommand.CommandText = "insert into FixPersonelInfo values (@pid,@pname,@unit,@unit_price) ;
MyConnection.Open();
MySqlCommand.ExecuteNonQuery();
Connection.Close();
-
سلام
بهتر بود خطایی که با اون روبرو شدید رو میگذاشتید
اما به هر حال شما پارامترهای متودتون رو تعریف نکردید
همچنین شما یک کانکشن نام کانکشنی که استفاده کردید یکسان نیست:
کد:
MyConnection.Open();
MySqlCommand.ExecuteNonQuery();
Connection.Close();
-
کدتان صحیح به نظر میرسد بجز این بخشش که پارامتر ها را تعریف و مقدار دهی نکردید
کد:
MySqlCommand .parameters.add(@pid,SqlDbType.Int).value=1;
, ...
نکته دیگر اینکه دستور SQL تان صحیح است ولی اگر ساختار جدولاتان تغییر کند به احتمال زیاد کار نخواهد کرد ، بهتر است اسم ستونهای جدول (که اختیاری است) را قید کنید ، به دو دستور Insert ذیل دقت کنید :
کد:
insert into Customers
(Name,Family)
values
(
'Ali'
,
'Mohammadi'
)
کد:
insert into Customers
values
(
'Ali'
,
'Mohammadi'
)
حال اگر ساختار جدول را بگونه ای تغییر دهیم که جای ستونهای Name , Family عوض شود یا اینکه ستون جدیدی قبل از آنها اضافه کنیم یا ... در این صورت کوئری دوم یا کار نخواهد کرد یا آنگونه که متصور بوده کار نمیکند .
توصیه دوم : برای این کارها از StoredProcedure ها استفاده کنید