PDA

View Full Version : سوال: چند مشکل در بانک اطلاعاتی



sajjadrad
پنج شنبه 08 مهر 1389, 08:45 صبح
با سلام خدمت دوستان عزیز

من یه بانک از طریق add item به پروژه اضافه کردم.یه جدول با نام userinfo که دارای سه فیلد username,password,id هست.
یه سری کد نوشتم برای ایجاد یک رکورد جدید و همچنین ویرایش رکورد.
اما مشکلم اینجاست که وقتی برنامه اجرا میشه هر دو قطعه کد درست کار میکنن اما متاسفانه تو بانک ذخیره نمیشن...احتمالا فقط تو حافظه دستکاری میشن.
اگه کسی میتونه کمک کنه چون من از
cmd.ExecuteNonQuery(); برای تاثیر در بانک استفاده کردم اما بازم کار نمیکنه....

منظورم از اینکه تو بانک ذخیره نمیشه اینه که وقتی رو جدول کلیک راست میکنم و show table data رو انتخاب میکنم اون مقادیری که من انتخاب کردم اضافه و یا ویرایش نشده.
اما این عملکرد ها فقط تو دیتاگرید قابل دیدنه و تو بانک تاثیری نمیذاره..
این قطعه کد ها:

برای وارد کردن رکورد جدید با استفاده از insert


SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database2.mdf;Integrated Security=True;User Instance=True";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
string sql = "insert into userinfo (username,password)";
sql += "values ('{0}','{1}')";
sql = string.Format(sql, newUser.Text, newPass.Text);
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
con.Close();


برای ویرایش رکورد:


SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database2.mdf;Integrated Security=True;User Instance=True";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "update userinfo set username=@lname,password=@name where username='sajjad'";
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@lname", newUser.Text);
cmd.Parameters.AddWithValue("@name", newPass.Text);
cmd.ExecuteNonQuery();
con.Close();


بعدش میخوام که شرط where متغیر باشه.یعنی مثلا کاربر رشته sajjad رو تو textbox وارد کنه و این رشته شرط where قرار داده بشه.
مثلا برای خوندن از بانک کاربر رشته وارد کنه و مثلا فیلد username توسط این رشته فیلتر بشه..
اینم یه قطعه کد برای خوندن از بانک که شرط where متغیره اما کار نمیکنه...نمیدونم چرا:ناراحت:



da.SelectCommand.CommandText = "select * from userinfo where ='"+txtUser.Text+"'";

da یه شی از نوع dataadaptor هستش

خوشحال میشم کسی کمکم کنه.:لبخند:
مرسی:قلب:

javad_r_85
پنج شنبه 08 مهر 1389, 09:23 صبح
روی دیتا بیست راست کنید کنید در propetires ان خاصیت Copy آن را روی NO Copy قرار داده سپس بانک را به پوشه دیباگ کپی کنید تا تغییرات در بانک ذخیره شود بری فیلتر کردن هم از آزمون خطا پیش برید خودتون مقدار به صوردت دستی وارد کنید ببیندی کار میکنه مثال زیر را ببینید


da.SelectCommand.CommandText = "select * from userinfo where ='test'";

محسن شامحمدی
پنج شنبه 08 مهر 1389, 10:15 صبح
دوست عزیز این سوال قبلا پرسیده شده بود که می تونستید با یک جستجوی ساده توی گوگل پیداش کنید.
اعمال نشدن تغییرات در دیتابیس (http://www.barnamenevis.org/forum/showthread.php?t=168597)

که جواب سوال رو هم جناب آقای مهندس مداح پاسخ داده بود:

سلام دوست عزیز،
فایل دیتابیس شما در هر بار Build شدن پروژه، با نسخه ای که به پروژه اضافه نمودید، جایگرین شده و به همین خاطر تغییرات مشاهده نمی شود،
برای اینکار فایل دیتابیس خود را در داخل پوشه Debug کپی کرده و پروپرتی Copy To Ouput Directory مربوط به آن را بر روی Do Not Copy قرار دهید،/

sajjadrad
دوشنبه 12 مهر 1389, 18:20 عصر
با تشکر از دوستان.مشکل دیتابیس حل شد.
الان مشکلم اینجاست که میخوام مثلا username رو توسط رشته ای که کاربر در Textbox وارد میکنه فیلتر کنم.از کد زیر استفاده میکنم اما جواب نمیده:ناراحت:

da.SelectCommand.CommandText = "select * from userinfo where ='"+txtUser.Text+"'";


با تشکر

mohamad68
دوشنبه 12 مهر 1389, 18:40 عصر
با تشکر از دوستان.مشکل دیتابیس حل شد.
الان مشکلم اینجاست که میخوام مثلا username رو توسط رشته ای که کاربر در Textbox وارد میکنه فیلتر کنم.از کد زیر استفاده میکنم اما جواب نمیده:ناراحت:

da.SelectCommand.CommandText = "select * from userinfo where ='"+txtUser.Text+"'";
با تشکر

سلام :لبخندساده:
query که نوشتید اشتباه ست

da.SelectCommand.CommandText = "select * from userinfo where نام فیلد ='"+txtUser.Text+"'"

payman_xxp
دوشنبه 12 مهر 1389, 22:01 عصر
با تشکر از دوستان.مشکل دیتابیس حل شد.
الان مشکلم اینجاست که میخوام مثلا username رو توسط رشته ای که کاربر در Textbox وارد میکنه فیلتر کنم.از کد زیر استفاده میکنم اما جواب نمیده:ناراحت:

da.SelectCommand.CommandText = "select * from userinfo where ='"+txtUser.Text+"'";
با تشکر

سلام
شکل صحیح کد شما به اینصورته:


da.SelectCommand.CommandText = "select * from userinfo where username = '"+txtUser.Text+"';