PDA

View Full Version : ذخیره نشدن اطلاعات به صورت واقعی در db



aghayex
پنج شنبه 06 اسفند 1388, 21:40 عصر
با سلام
من یه db با sql server دارو که در برنامم فراخوانیش کردم و به صورت زیر بهش وصل شدم


SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\db\\ya ali.mdf;Integrated Security=True;User Instance=True");
SqlCommand sqlcm = new SqlCommand();
sqlcm.Connection = sqlcon;
sqlcm.CommandText = "user_update_taki_arshad";
sqlcm.CommandType = CommandType.StoredProcedure;
sqlcm.Parameters.AddWithValue("@namarshad", newnam.Text);
sqlcm.Parameters.AddWithValue("@ramz", oldpas.Password.ToString());
sqlcm.Parameters.AddWithValue("@ramznew", newpas.Password.ToString());
sqlcon.Open();
sqlcm.ExecuteNonQuery();
sqlcon.Close();

و sp اون هم به صورت زیر هست


create Procedure user_update_taki_arshad
@namarshad varchar(15),
@ramz varchar(15),
@ramznew varchar(15)
as
begin
UPDATE masool SET namarshad=@namarshad,ramz=@ramznew where namarshad=@namarshad and ramz=@ramz
end

اما موقعی که اطلاعات رو بهش می دم تا موقعی که برنامه باز هست اطلاعات به ظاهر تغییر کردند اما برنامه رو می بندم و دوباره اجرا می کنم همون اطلاعات اولی رو دارم
یه مورد دیگه که هست اونه که یه دستور insert دارم که کدهاش بدون خطا اجرا می شن اما اون رکورد ایجاد نمی شه . ممنون اگه کمک کنید

Rejnev
پنج شنبه 06 اسفند 1388, 21:51 عصر
سلام
شاید رکوردی پیدا نمیشه که update کنه
تعداد خروجی متد executeNone رو چک کنید ببینید عدد چند برمیگردونه.
اسم پارامترها رو هم در CommandText بدید و بعد امتحان کنید



...
sqlcm.CommandText = "exec user_update_taki_arshad @namarshad,@ramz,@ramzNew";
sqlcm.CommandType = CommandType.Text;
sqlcm.Parameters.AddWithValue("@namarshad", newnam.Text);
sqlcm.Parameters.AddWithValue("@ramz", oldpas.Password.ToString());
sqlcm.Parameters.AddWithValue("@ramznew", newpas.Password.ToString());
sqlcon.Open();
sqlcm.ExecuteNonQuery();

...

aghayex
پنج شنبه 06 اسفند 1388, 21:57 عصر
با تشکر از جوابتون
اما من دستورمو با sp نوشتم و همون چیزی هست که شما نوشتید اما نمی دونم چرا اطلاعات ثبت نهایی نمی شن

aghayex
جمعه 07 اسفند 1388, 08:08 صبح
رکورد مورد نظر رو پیدا می کنه به ظاهر هم تغییر می خوره اما موقعی که میرم سراغ دیتابیسم تغیری صورت نگرفته ولی جالب اینه که موقعی که می خوام با این کاربر وارد برنامه بشم پسورد جدید رو قبول می کنه , فکر کنم اطلاعات در رم تغییر می خورن ام در دیتابیس اصلی نه .:ناراحت:

ehsanes
جمعه 07 اسفند 1388, 08:44 صبح
من هم این مشکل داشتم اطلاعات ثبت می شد ولی وقتی برنامه می بستم ودوباره باز میکردم انگار هیچی ثبت نشده اما وقتی exe گرفتم درست شد وکار میکنه این کار امتحان کن ببین درست میشه

Rejnev
جمعه 07 اسفند 1388, 12:23 عصر
رکورد مورد نظر رو پیدا می کنه به ظاهر هم تغییر می خوره اما موقعی که میرم سراغ دیتابیسم تغیری صورت نگرفته ولی جالب اینه که موقعی که می خوام با این کاربر وارد برنامه بشم پسورد جدید رو قبول می کنه , فکر کنم اطلاعات در رم تغییر می خورن ام در دیتابیس اصلی نه .:ناراحت:
پس اطلاعات ثبت میشن...
اطلاعات جدید رو کجا و چطوری و چه موقع میخونید؟

aghayex
جمعه 07 اسفند 1388, 15:12 عصر
آخه دلیلش چیه که این اتفاق می افته . تازه در حین نوشتن برنامه شاید بخوایم برنامه رو تست کنیم و اینطوری به مشکل بر می خوریم . کسی راه حلی نداره ؟