PDA

View Full Version : مشکل در insert



federrer
پنج شنبه 20 تیر 1387, 19:17 عصر
من یه برنامه ساده نوشتم که هدفم فقط insert کردن اطلاعات هست .اگه ممکنه راهنمایی کنید.

این کدها رو نوشتم تا از دو تا textbox بتونم تو دو فیلد متناظر عمل insert دیتا رو انجام بدم





string CS = (string)ConfigurationManager.AppSettings["Connectionstring"];
SqlConnection Cnn = new SqlConnection(CS);
Cnn.Open();

SqlCommand Cmd = new SqlCommand("spinsert", Cnn);
Cmd.CommandType = CommandType.StoredProcedure;

Cmd.Parameters.Add(new SqlParameter("@A", SqlDbType.Nvarchar));
Cmd.Parameters["@A"].Value = text1.text.ToString();

Cmd.Parameters.Add(new SqlParameter("@B", SqlDbType.Nvarchar));
Cmd.Parameters["@B"].Value = text2.text.ToString();

Cmd.ExecuteNonQuery();

l2.Text = Cmd.Parameters["@A"].Value.ToString();
l3.Text = Cmd.Parameters["@B"].Value.ToString();

Cnn.close();


مقادیر پاراترهای A@ و B@ در l2 و l3 نشون داده میشه و مشکلی در انتقال اطلاعات نیست
ظاهرا همه چیز درسته .مثلا با کوچکترین "دستکاری عمدی" پیغام خطا میده ولی عمل insert انجام نمیشه .
مثل اینکه ExecuteNonQuery روی آبجکت Cmd درست انجام نمیشه

از پروسیجر زیر استفاده کردم




ALTER PROCEDURE dbo.spinsert
(
@A Nvarchar(50),
@B Nvarchar(50)
)
AS
INSERT INTO Register(Name,Family) VALUES(@A,@B)
Return


بطور دستی می تونم تو تیبل دیتا وارد کنم .جالب اینجاست که قبلا همین کدها رو در Webapp تست کردم و جواب گرفتم در Winapp هیچ پیغام خطایی نمی ده ولی چیزی هم insert نمیشه !!!! :ناراحت:

m0rteza
پنج شنبه 20 تیر 1387, 20:03 عصر
string InsertSql = "INSERT INTO TBL_TEST(Code,Name) " +
" VALUES (@Code,@Name)";
SqlCommand Cmd = newSqlCommand(InsertSql, ObjConnection);
Cmd.Parameters.Add("@Code", SqlDbType.BigInt).Value = Txt_Code.Text;
Cmd.Parameters.Add("@Name", SqlDbType.Nvarchar).Value = Txt_Name.Text;
ObjConnection.Open();
Cmd.ExecuteNonQuery();
ObjConnection.Close();

federrer
جمعه 21 تیر 1387, 19:00 عصر
دوست عزیز خیلی ممنون

روشی که شما معرفی کردی اولین حالتی هست که به ذهن میرسه

منظور شما اینه که از پروسیجر استفاده نکنم و مستقیما کوئری رو داخل یه متغیر استرینگ بریزم بعد متغیر رو به عوان پارامتر به Cmd پاس بدم

مشکل از این چیزا نیست چون این روش رو هم تست کردم ولی جواب نداده !!

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

کدی که نوشتم مشکل نداره چون قبلا تو Webapp از کد مشابه استفاده کردم ولی تو Winapp نمیدونم چرا insert رو انجام نمیده ! update رو هم تست کردم اونم انجام نمیشه!!

federrer
شنبه 22 تیر 1387, 06:02 صبح
کسی چیزی به ذهنش نمی رسه ؟؟