PDA

View Full Version : سوال: مشکل کد باتن های جستجو و حذف من چیه؟



ehsan7007
پنج شنبه 26 مرداد 1391, 19:20 عصر
سلام دوستان.
کسی می تونه یگه کجا اشتباه کردم ؟
این کد باتن های جستجو و حذف منه ، باتن حذفش که کلا کار نمی کنه و باتن جستجوش رو هم وقتی می زنم به این خط گیر میده : DataView dv = Ds.Tables[0].DefaultView

در ضمن دیتاگریدم کامپوننت telerik Rad هستش.

جستجو :

DataView dv = Ds.Tables[0].DefaultView;
dv.RowFilter = string.Format("id LIKE '%{0}%'", textBox11.Text.Trim());
dgw.DataSource = dv;
BindGrid();

و حذف :

SqlCommand Cmd = new SqlCommand() { CommandText = "DELETE FROM soft WHERE ID=@id", Connection = con };
Cmd.Parameters.AddWithValue("@id", Convert.ToInt32(dgw.CurrentRow.Cells[0].Value.ToString()));
if (con.State == ConnectionState.Closed)
{
con.Open();
}
if (Cmd.ExecuteNonQuery() == 1)
{

del d = new del();
d.Show();
}
Cmd.Parameters.Clear();
BindGrid();
con.Close();
textBox13.Text = "";

با تشکر از دوستان منتظر راهنمایی هاتون هستم.

Mahmoud.Afrad
جمعه 27 مرداد 1391, 11:58 صبح
برای فیلتر کردن اگر نوع id عددی هست به این صورت بنویسid = یزاس نوع عددی نیاز به تک کوتیشن نیست

ehsan7007
جمعه 27 مرداد 1391, 12:19 عصر
اره عددی هست ولی باز هم مشکل حل نشد.

ehsan7007
جمعه 27 مرداد 1391, 12:25 عصر
راستی فکر نکنم مشکل از اونجا یا کد باشه چون قبلا یه برنامه دقیقا با همین کد نوشته بودم که هیچ مشکلی نداشت!!

ali_habibi1384
جمعه 27 مرداد 1391, 12:38 عصر
اين خطو اينجوري دزستش كن:

DataView dv = Ds.Tables[0].DefaultView.toTable();
خطايي كه درباره حذف ميده چيه؟

ehsan7007
جمعه 27 مرداد 1391, 12:46 عصر
برای حذف اصلا خطا نمیده !!
انگار که داری روی یه باتن بدون کد کلیک می کنی!!

ehsan7007
جمعه 27 مرداد 1391, 12:48 عصر
به toTable خطا می ده!!

ehsan7007
جمعه 27 مرداد 1391, 12:49 عصر
نوشتم ToTable درست شد اما این خطا رو میده :

Error 8 Cannot implicitly convert type 'System.Data.DataTable' to 'System.Data.DataView'

ali_habibi1384
جمعه 27 مرداد 1391, 12:52 عصر
خب بايد ديتا سورسش رو برابر اون قراربدي كه هر دو از يك نوع باشند

ehsan7007
جمعه 27 مرداد 1391, 13:09 عصر
برای حذف چطور؟

ehsan7007
جمعه 27 مرداد 1391, 17:12 عصر
مگه دوستان خودشون از چه کدی استفاده می کنن؟؟؟؟

veniz2008
جمعه 27 مرداد 1391, 17:46 عصر
سلام. اینطوری بنویس:

SqlCommand Cmd = new SqlCommand("DELETE FROM soft WHERE ID=@id",con);
Cmd.Parameters.AddWithValue("@id", Convert.ToInt32(dgw.CurrentRow.Cells[0].Value.ToString()));
if (con.State == ConnectionState.Closed)
{
con.Open();
}
Cmd.ExecuteNonQuery();

del d = new del();
d.Show();
BindGrid();
con.Close();
textBox13.Text = "";

ehsan7007
جمعه 27 مرداد 1391, 18:01 عصر
اگه بگم فرقی نکرد ناراحت می شید؟؟؟!!!!

ehsan7007
جمعه 27 مرداد 1391, 18:05 عصر
یه باتن جدید درست کردم و کدتون رو نوش نوشتم.
خطا : Input string was not in a correct format

veniz2008
جمعه 27 مرداد 1391, 18:29 عصر
اگه بگم فرقی نکرد ناراحت می شید؟؟؟!!!!
نه چرا ناراحت شم؟؟؟؟. اتفاقا خندم گرفت. یه کاری کن. کد زیر رو درون دکمه بذار ( این کد فقط رکورد رو حذف میکنه)، بعدش برو توی دیتابیس ببین کلا اون رکورد رو حذف کرده یا نه؟.

SqlCommand Cmd = new SqlCommand("DELETE FROM soft WHERE ID=@id",con);
Cmd.Parameters.AddWithValue("@id", Convert.ToInt32(dgw.CurrentRow.Cells[0].Value.ToString()));
if (con.State == ConnectionState.Closed)
{
con.Open();
}
Cmd.ExecuteNonQuery();
con.Close();

ehsan7007
جمعه 27 مرداد 1391, 18:47 عصر
دوباره همون اتفاق قبلی افتاد.

veniz2008
جمعه 27 مرداد 1391, 18:53 عصر
واقعا جالبه. دستور حذف دستوری نیست که بخواد اینقدر دردسر ساز باشه. فقط با حذف مشکل داری؟ مثلا نمایش داده ها درست کار میکنه؟. دستور آپدیت چطور؟. اگه ممکنه کانکشن استرینگت رو هم بذار.

ehsan7007
جمعه 27 مرداد 1391, 19:06 عصر
هم حذف و هم جستجو. نمایش داده ها و درج اون ها درسته.
دستور اپدیت رو هم هنوز ننوشتم.
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

راستی این 1000 رومین پستتون بود ها!!!:لبخند:

ehsan7007
جمعه 27 مرداد 1391, 19:32 عصر
یه چیزه جالب دیگه!!
خواستم یه rad form اضافه کنم(فرم کامپوننت) که این ارور رو میده؟؟؟!!!! :


91414

veniz2008
جمعه 27 مرداد 1391, 20:22 عصر
اگه هنوز مشکلت حل نشده، کد زیر رو هم تست کن. اگه جواب نداد به این جمله ایمان بیار که بعضی چیزها نفرین شده هستن!!( احتمالا فرم یا دکمه یا شایدم ویژوال استودیوت :خجالت: ).

SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand Cmd = new SqlCommand("delete FROM soft WHERE ID=@id", con);
Cmd.Parameters.AddWithValue("@id", Convert.ToInt32(dgw.CurrentRow.Cells[0].Value.ToString()));
con.Open();
Cmd.ExecuteNonQuery();
MessageBox.Show("رکورد مورد نظر با موفقیت حذف شد");
con.Close();

ehsan7007
شنبه 28 مرداد 1391, 23:12 عصر
نفرین شده!! :متعجب:
دیگه مطمئنم نفرین شده!!
با اینهم کار نکرد و خطا داد.
:عصبانی++:

ehsan7007
شنبه 28 مرداد 1391, 23:26 عصر
دوستان تکلیف من چیه؟
من این برنامه رو دارم برای کسی می نویسم ، خیلی درد داره وقتی کدت درسته اما درست کار نمی کنه!! :گریه:

veniz2008
شنبه 28 مرداد 1391, 23:32 عصر
فایل exeبرنامتو پاک کن و دوباره برنامه رو با کدهایی که بهت داده بودم build کن و برنامه رو اجرا کن تا یه فایل exe جدید ساخته بشه. امیدوارم مشکلت حل بشه.

ehsan7007
شنبه 28 مرداد 1391, 23:37 عصر
تازگی ها مشکل زیاد پیدا کرده ف فک کنم از ویندوز و ویژال استدیو باشه ، اخه وقتی می خوام یه کریستال ریپورت ویرایش یا اضافه کنم هنگ می کنه!!

veniz2008
شنبه 28 مرداد 1391, 23:43 عصر
خوب اگه به ویندوز و ویژوال شک داری خوب عوضشون کن. یه ویندوز تمیز و سرحال یه دنیای دیگه داره. مواظب ویروس ها هم باش. موفق باشی دوست من.