PDA

View Full Version : حذف کردن یک سطر بانک در سی شارپ



yanni2
یک شنبه 20 مرداد 1392, 23:37 عصر
سلام دوستان من برای پاک کردن یک سطر در بانک sql از کد زیر استفاده میکنم
SqlCommand cmd6 = new SqlCommand("Delete from ostad where cod='" + textBoxX1.Text + "'", conn);
cmd6.ExecuteNonQuery();
MessageBox.Show("عملیات حذف با موفقیت انجام شد",
"پیغام موفقیت",
MessageBoxButtons.OK,
MessageBoxIcon.Information);

اما مشکل اینجاست که اگر کدی که من وارد میکنم در بانک نباشد برنامه هنگ میکند من میخوام وقتی داده ای را در textbox1 وارد کردم در بانک بگردد اگر نبود پیغام بدهد که یافت نشد


لطفا راهنمایی کنید من سر پروژه هستم
ممنون از همه

hamid_73
یک شنبه 20 مرداد 1392, 23:59 عصر
سلام دوستان من برای پاک کردن یک سطر در بانک sql از کد زیر استفاده میکنم
SqlCommand cmd6 = new SqlCommand("Delete from ostad where cod='" + textBoxX1.Text + "'", conn);
cmd6.ExecuteNonQuery();
MessageBox.Show("عملیات حذف با موفقیت انجام شد",
"پیغام موفقیت",
MessageBoxButtons.OK,
MessageBoxIcon.Information);

اما مشکل اینجاست که اگر کدی که من وارد میکنم در بانک نباشد برنامه هنگ میکند من میخوام وقتی داده ای را در textbox1 وارد کردم در بانک بگردد اگر نبود پیغام بدهد که یافت نشد


لطفا راهنمایی کنید من سر پروژه هستم
ممنون از همه
یه dataset ایجاد کنین بعد این کد رو بزنین
DataSet1 ds = new DataSet1();
DataSet1TableAdapters.tblTableAdapterta = new DataSet1TableAdapters.tblTableAdapter();
ta.FillBy(ds.tabl1, txtcode.Text);
if (ds.tbl_Login.Rows.Count > 0)
{
.......
}
else
{
messagebox.show("وجود ندارد")
}

yanni2
دوشنبه 21 مرداد 1392, 00:03 صبح
یه dataset ایجاد کنین بعد این کد رو بزنین
DataSet1 ds = new DataSet1();
DataSet1TableAdapters.tblTableAdapterta = new DataSet1TableAdapters.tblTableAdapter();
ta.FillBy(ds.tabl1, txtcode.Text);
if (ds.tbl_Login.Rows.Count > 0)
{
.......
}
else
{
messagebox.show("وجود ندارد")
}




دوست عزیز این کد را ادامه کد خودم بزنم ؟

hamid_73
دوشنبه 21 مرداد 1392, 00:05 صبح
سلام دوستان من برای پاک کردن یک سطر در بانک sql از کد زیر استفاده میکنم
SqlCommand cmd6 = new SqlCommand("Delete from ostad where cod='" + textBoxX1.Text + "'", conn);
cmd6.ExecuteNonQuery();
MessageBox.Show("عملیات حذف با موفقیت انجام شد",
"پیغام موفقیت",
MessageBoxButtons.OK,
MessageBoxIcon.Information);

اما مشکل اینجاست که اگر کدی که من وارد میکنم در بانک نباشد برنامه هنگ میکند من میخوام وقتی داده ای را در textbox1 وارد کردم در بانک بگردد اگر نبود پیغام بدهد که یافت نشد


لطفا راهنمایی کنید من سر پروژه هستم
ممنون از همه


دوست عزیز این کد را ادامه کد خودم بزنم ؟
نه. کدتون رو به جای نقطه ها بگذاری.

yanni2
دوشنبه 21 مرداد 1392, 00:14 صبح
دوست عزیز به این عکس نگاه کن اینجا ها را پیغام خطا میده
108936

hamid_73
دوشنبه 21 مرداد 1392, 00:17 صبح
دوست عزیز به این عکس نگاه کن اینجا ها را پیغام خطا میده
108936
یا dataset ایجاد نکردین یا اسمشو یه چیز دیگه گذاشتین

yanni2
دوشنبه 21 مرداد 1392, 00:22 صبح
یا dataset ایجاد نکردین یا اسمشو یه چیز دیگه گذاشتین

میشه دقیقا اون چیزهایی که باید ایجاد بشه و کد شو بنویسید
ممنون

hamid_73
دوشنبه 21 مرداد 1392, 00:32 صبح
میشه دقیقا اون چیزهایی که باید ایجاد بشه و کد شو بنویسید
ممنون
در قسمت سولوشن روی اسم پروژتون راست کلیک کنید و ادد ایتم رو بزنید و یک دیتا ست ایجاد کنید بعد یه صفحه باز میشه راست کلیک می کنین add-> tableadaptor رو انتخاب می کنید یه پنجره باز میشه
صفحه اول تو منو باز شو پایگاه دادتو انتخاب می کنی صفحه دوم رو رد می کنی سوم هم همینطور صفحه چهارم رو Quriebuilder کلیک کنین تا یک \نجره دیگه براتون باز بشه بعد اونجا جدول مورد نظرتون رو انتخاب کنید و ادد کنین بعد allcolumns رو انتخاب کنید پ ok کنید و بعد برید به صفحه بعد و finish رو بزنید الان دیگه اون خطا ارور نمیده به جز messagebox که خودت دوباره از اول بنویسشون درست میشه

yanni2
دوشنبه 21 مرداد 1392, 00:42 صبح
در قسمت سولوشن روی اسم پروژتون راست کلیک کنید و ادد ایتم رو بزنید و یک دیتا ست ایجاد کنید بعد یه صفحه باز میشه راست کلیک می کنین add-> tableadaptor رو انتخاب می کنید یه پنجره باز میشه
صفحه اول تو منو باز شو پایگاه دادتو انتخاب می کنی صفحه دوم رو رد می کنی سوم هم همینطور صفحه چهارم رو Quriebuilder کلیک کنین تا یک \نجره دیگه براتون باز بشه بعد اونجا جدول مورد نظرتون رو انتخاب کنید و ادد کنین بعد allcolumns رو انتخاب کنید پ ok کنید و بعد برید به صفحه بعد و finish رو بزنید الان دیگه اون خطا ارور نمیده به جز messagebox که خودت دوباره از اول بنویسشون درست میشه


دوست عزیز من اینارو میدونم ولی میخوام کل پروژه ام با کد نویسی باشه نه با design
اگه کد شو میدونید بگید منم راحت بشم

کد زیرو نگاه کنید ببینید من اینجور معرفی کردم
SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=razmi;Integrated Security=True");

SqlDataAdapter my_da = new SqlDataAdapter();
SqlCommand my_cm = new SqlCommand();
DataSet ds = new DataSet();


ببینید میتونید طبق این معرفی های من کد خودتون رو تنظیم کنید ممنون واقعا

hamid_73
دوشنبه 21 مرداد 1392, 00:49 صبح
دوست عزیز من اینارو میدونم ولی میخوام کل پروژه ام با کد نویسی باشه نه با design
اگه کد شو میدونید بگید منم راحت بشم

کد زیرو نگاه کنید ببینید من اینجور معرفی کردم
SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=razmi;Integrated Security=True");

SqlDataAdapter my_da = new SqlDataAdapter();
SqlCommand my_cm = new SqlCommand();
DataSet ds = new DataSet();


ببینید میتونید طبق این معرفی های من کد خودتون رو تنظیم کنید ممنون واقعا
می تونین با یه try و catch ساده درست کنین
مگه نمیگین اگه همچین اسمی نباشه ارور میده خب
شما کدتونو
try
{
.....
}
قرار بدید و پیغام خطاتونم میزارید تو catch
catch
{
MessageBox.Show("..")
}

try
{
SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=razmi;Integrated Security=True");

SqlDataAdapter my_da = new SqlDataAdapter();
SqlCommand my_cm = new SqlCommand();
DataSet ds = new DataSet();
}
catch
{
Messagebox.Show("khata")
}

yanni2
دوشنبه 21 مرداد 1392, 00:56 صبح
می تونین با یه try و catch ساده درست کنین
مگه نمیگین اگه همچین اسمی نباشه ارور میده خب
شما کدتونو
try
{
.....
}
قرار بدید و پیغام خطاتونم میزارید تو catch
catch
{
MessageBox.Show("..")
}

try
{
SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=razmi;Integrated Security=True");

SqlDataAdapter my_da = new SqlDataAdapter();
SqlCommand my_cm = new SqlCommand();
DataSet ds = new DataSet();
}
catch
{
Messagebox.Show("khata")
}


بعد کد حذف کردن داده چی میشه

من منظورم این بود که sqldataadaptor و dataset کد اولی که به من دادید را به اگه امکان دارد این کدی که الان به شما دادم هماهنگ کنید تا در سیستم من کار کند
ممنون

hamid_73
دوشنبه 21 مرداد 1392, 00:58 صبح
بعد کد حذف کردن داده چی میشه

من منظورم این بود که sqldataadaptor و dataset کد اولی که به من دادید را به اگه امکان دارد این کدی که الان به شما دادم هماهنگ کنید تا در سیستم من کار کند
ممنون
اینجور که راحت تره همه کدهای مربوط به حذفتونو بزارین تو try اگه به مشکلی بر خورد ارور میده

Mahmoud.Afrad
دوشنبه 21 مرداد 1392, 01:08 صبح
کد اگر از نوع عددی هست نیازی به اون تک کوتیشن ها نیست.
سعی کن از پارامترها استفاده کنی.
متد ExecuteNonQuery تعداد سطرهایی که تحت تاثیر قرار میگیرن رو برمیگردونه که میتونی چک کنی.

SqlCommand cmd6 = new SqlCommand("Delete from ostad where cod=@cod", conn);
cmd6.Parameters.AddWithValue("@cod", textBox1.Text);
int i = cmd6.ExecuteNonQuery();
if (i > 0)
MessageBox.Show("عملیات حذف با موفقیت انجام شد", "پیغام موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
MessageBox.Show("چنین کدی وجود ندارد");

yanni2
دوشنبه 21 مرداد 1392, 01:13 صبح
دوست عزیز کدتو زدم
ولی میدونی چرا این گیر میکنه
108941

yanni2
دوشنبه 21 مرداد 1392, 01:25 صبح
دوستان کمک کنید خیلی گیرم

Mahmoud.Afrad
دوشنبه 21 مرداد 1392, 01:25 صبح
یعنی متوجه نشدی. کانکشن رو باز نکردی

SqlCommand cmd6 = new SqlCommand("Delete from ostad where cod=@cod", conn);
cmd6.Parameters.AddWithValue("@cod", textBox1.Text);
try
{
if (conn.State != System.Data.ConnectionState.Open)
conn.Open();
int i = cmd6.ExecuteNonQuery();
if (i > 0)
MessageBox.Show("عملیات حذف با موفقیت انجام شد", "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
else
MessageBox.Show("چنین کدی وجود ندارد");
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}

yanni2
دوشنبه 21 مرداد 1392, 01:32 صبح
یعنی متوجه نشدی. کانکشن رو باز نکردی

SqlCommand cmd6 = new SqlCommand("Delete from ostad where cod=@cod", conn);
cmd6.Parameters.AddWithValue("@cod", textBox1.Text);
try
{
if (conn.State != System.Data.ConnectionState.Open)
conn.Open();
int i = cmd6.ExecuteNonQuery();
if (i > 0)
MessageBox.Show("عملیات حذف با موفقیت انجام شد", "پیغام موفقیت", MessageBoxButtons.OK,
MessageBoxIcon.Information);
else
MessageBox.Show("چنین کدی وجود ندارد");
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
finally
{
if (conn.State != System.Data.ConnectionState.Closed)
conn.Close();
}



دوست عزیز تشکر اصلا حواسم به این نبود
ولی الان یک مشکل هست اونم اینکه وقتی کد را وارد میکنم حذف را میزنم میگه حذف شد ولی چیزی از بانک حذف نمی شود

Mahmoud.Afrad
دوشنبه 21 مرداد 1392, 02:00 صبح
دوست عزیز تشکر اصلا حواسم به این نبود
ولی الان یک مشکل هست اونم اینکه وقتی کد را وارد میکنم حذف را میزنم میگه حذف شد ولی چیزی از بانک حذف نمی شود
از کجا مطمئنی؟

yanni2
دوشنبه 21 مرداد 1392, 02:19 صبح
از کجا مطمئنی؟

خب داخل فرم خودم datagridview دارم و از بانک هم چک میکنم

جالب اینجاست بدونی در قسمت ثبت استاد ها کار میکنه ولی در قسمت ثبت رشته پروژه کار نمیکنه (یعنی در یک فرم کار میکنه در فرم دیگه نه ) !

Mahmoud.Afrad
دوشنبه 21 مرداد 1392, 02:29 صبح
اگر اطلاعات جدول رو در کنترلی مثل دیتاگرید نشون میدی ، بعد از اینکه سطر رو حذف کردی باید اطلاعات رو دوباره لود کنی.


اگر هم در هربار دیباگ اطلاعات برمیگردن ، مشکلی نیست چون در هر باگ دیباگ یک کپی از دیتابیس پروژه در پوشه دیباگ کپی میشه . مهم اینه که در لحظه حذف از حذف مطمئن بشی که با دریافت پیغام این اتفاق میفته.

yanni2
دوشنبه 21 مرداد 1392, 02:39 صبح
اگر اطلاعات جدول رو در کنترلی مثل دیتاگرید نشون میدی ، بعد از اینکه سطر رو حذف کردی باید اطلاعات رو دوباره لود کنی.


اگر هم در هربار دیباگ اطلاعات برمیگردن ، مشکلی نیست چون در هر باگ دیباگ یک کپی از دیتابیس پروژه در پوشه دیباگ کپی میشه . مهم اینه که در لحظه حذف از حذف مطمئن بشی که با دریافت پیغام این اتفاق میفته.


دوست عزیز این حرفی که الان میزنی در یک فرم من اتفاق میوفته در فرم دیگر نه پیغام می دهد که رکورد حذف شده اما در بانک هیچ رکوردی حذف نشده جالب اینجاست که وقتی دوباره کد قبلی را که زدم میزنم قبول نمیکنه میگه چنین کدی وجود ندارد فک میکنه حذف کرده در حالی که حذف نکرده :D

yanni2
جمعه 25 مرداد 1392, 02:42 صبح
دوست عزیز درست شد ممنون

amir_hamze
سه شنبه 14 آبان 1392, 22:28 عصر
سلام
خسته نباشید
منم میخوام مثل دوستمون یک سطر از sql رو پاک کنم اما میخوام وقتی تو datagrid سطر مورد نظرمو انتخاب کردم اون سطر حذفشه
در ضمن اگر میشه توضیحی مختصر در خصوص کار و نحوه ی نوشتن این کدی که در بالا نوشتید بدید
تشکرcatch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);

mohammad5593
چهارشنبه 15 آبان 1392, 00:00 صبح
سلام
خسته نباشید
منم میخوام مثل دوستمون یک سطر از sql رو پاک کنم اما میخوام وقتی تو datagrid سطر مورد نظرمو انتخاب کردم اون سطر حذفشه
در ضمن اگر میشه توضیحی مختصر در خصوص کار و نحوه ی نوشتن این کدی که در بالا نوشتید بدید
تشکرcatch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
برای به دست آوردن سطر انتخابی گریدویو

dataGridView1.CurrentRow.Cells[0].Value.ToString()
یا
dataGridView1.CurrentRow.Cells["نام ستون"].Value.ToString()