PDA

View Full Version : سوال: خطا هنگام حذف رکورد از دیتابیس



shahramap
جمعه 08 شهریور 1392, 13:42 عصر
در بانکم یه جدول با فیلدهای id,nam,shahrestan,tarikh,count دارم که id شماره هستش و از نوع int می باشد.میخوام حذف بر اساس id انجام بدم.nam از نوع (nvarchar(50 و shahrestan از نوع (nvarchar(50 و tarikh از نوع (nvarchar(50 و count از نوع int هست.میخوام وقتی شماره ردیف رو درون تکست باکس مینویسم رکورد مربوطه حذف گردد.اینم تابعی به نام deleterecord نوشتم واونو درون رویداد کلید حذف صدازدم. که خطا میده...اگه کسی راهنمایی کنه ممنون میشم.باتشکر.
private void deleterecord()
{ SqlCommand cm = new SqlCommand();
cm.CommandText = "delete from hos1 where id='" + txtdelete + "' ";
cm.Parameters.Add("@txtdelete", SqlDbType.Text).Value = txtdelete.Text;

cm.Connection = cn;
cm.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقییت حذف شد");
cn.Close();

}

private void button1_Click(object sender, EventArgs e)
{

deleterecord();
ds.Clear();
}

davidrobert
جمعه 08 شهریور 1392, 14:39 عصر
این کد برای حذف اطلاعات هستش ببنید . private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedCells.Count != 0)//tedade cell hayi ke select shodan
{
if (MessageBox.Show("آیا مایلید مورد انتخاب شده حذف شود؟", "سوال(حذف)؟", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
kNAME = dataGridView1.CurrentRow.Cells["kN"].Value.ToString();


con = new SqlConnection(connect);
con.Open();
string query = "DELETE FROM kala WHERE kala_name=@p1 ";

command = new SqlCommand();
command.Parameters.AddWithValue("@p1", kNAME);

command.CommandText = query;
command.Connection = con;
command.ExecuteNonQuery();
con.Close();
command.Dispose();
con.Dispose();
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[0];


}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}
بدرد شما میخوره برای حذف اطلاعات.

hamid_hr
جمعه 08 شهریور 1392, 14:42 عصر
ببين اشتباه نوشتي

cm.CommandText = "delete from hos1 where id=@txtdelete ";

cm.Parameters.Add("@txtdelete", SqlDbType.Text).Value = txtdelete.Text;

shahramap
جمعه 08 شهریور 1392, 19:50 عصر
این کد برای حذف اطلاعات هستش ببنید . private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedCells.Count != 0)//tedade cell hayi ke select shodan
{
if (MessageBox.Show("آیا مایلید مورد انتخاب شده حذف شود؟", "سوال(حذف)؟", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
kNAME = dataGridView1.CurrentRow.Cells["kN"].Value.ToString();


con = new SqlConnection(connect);
con.Open();
string query = "DELETE FROM kala WHERE kala_name=@p1 ";

command = new SqlCommand();
command.Parameters.AddWithValue("@p1", kNAME);

command.CommandText = query;
command.Connection = con;
command.ExecuteNonQuery();
con.Close();
command.Dispose();
con.Dispose();
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[0];


}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}
بدرد شما میخوره برای حذف اطلاعات.

kname نام فیلد بانک است؟؟؟ , و اون kn چی هست؟
این کد حذف از دیتاگرید است که با انتخاب ردیف حذف میکنه؟

sohil_ww
جمعه 08 شهریور 1392, 20:03 عصر
cm.CommandText = "delete from hos1 where id='" + txtdelete + "' ";



به ' که گذاشتی دقت کن تو Sql نوع عددی با ' همراه نمیشه پاکش کن

shahramap
جمعه 08 شهریور 1392, 20:41 عصر
حالا این کد رو مستقیم در رویداد باتن حذف گذاشتم باز خطایی که در عکس مشاهده میکنید رو داد....؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!

cn.Open();
SqlCommand cm2 = new SqlCommand();
cm2.CommandText = "delete from hos1 where id=@txtdelete.Text";
cm2.Parameters.Add("@txtdelete", SqlDbType.Text).Value = txtdelete.Text;
cm2.Connection = cn;
cm2.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقییت حذف شد");

ansaralghaem
جمعه 08 شهریور 1392, 21:13 عصر
این کد رو بزار باید درست باشه




cn.Open();
SqlCommand cm2 = new SqlCommand();
cm2.CommandText = "delete from hos1 where id=@txtdelete";
cm2.Parameters.AddWithValue("@txtdelete", txtdelete.Text) ;
cm2.Connection = cn;
cm2.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقییت حذف شد");