نمایش نتایج 1 تا 3 از 3

نام تاپیک: مشکل با ExecuteNonQuery در Datagridview Delete Button

  1. #1

    مشکل با ExecuteNonQuery در Datagridview Delete Button

    یک datagridview دارم که یک ستون delete button داره که اگه روی دکمه ی delete کلیک شود اطلاعات اون سطر باید پاک بشن. ولی روی دستور cmd.ExecuteNonQuery(); ارور میده. مشکلش چیه؟ باید چه کار کنم؟

    private void Form1_Load(object sender, EventArgs e)
    {
    // TODO: This line of code loads data into the 'student2DataSet.table1' table. You can move, or remove it, as needed.
    this.table1TableAdapter.Fill(this.student2DataSet. table1);
    dataGridView1.AutoGenerateColumns = false;
    dataGridView1.ReadOnly = true;
    }

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
    if (dataGridView1.CurrentCell.Value.ToString().Trim() == "delete")
    {
    dataGridView1.ReadOnly = false;
    dataGridView1.AllowUserToDeleteRows = true;
    SqlConnection con = new SqlConnection("Data Source=localhost;initial Catalog=Student2;integrated Security=True;");
    con.Open();
    string lname;
    SqlCommand cmd = new SqlCommand();
    lname = dataGridView1.CurrentRow.Cells[1].Value.ToString();
    cmd.CommandText = "DELETE FROM table1 WHERE lastname=" + lname;
    cmd.Connection = con;
    cmd.ExecuteNonQuery();
    this.student2DataSet.table1.Clear();
    this.table1TableAdapter.Fill(this.student2DataSet. table1);
    dataGridView1.Update();
    con.Close();
    dataGridView1.ReadOnly = true;
    }
    }

  2. #2
    VIP آواتار Sajjad.Aghapour
    تاریخ عضویت
    مهر 1386
    محل زندگی
    اهل کاشانم .. روزگارم بد نیست
    پست
    1,265

    نقل قول: مشکل این کد چیه؟

    دوست عزیز بهتره از SqlCommandBuilder استفاده کنی.به این صورت:

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
    if (e.ColumnIndex == 2)
    dataGridView1.Rows.RemoveAt(e.RowIndex);
    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
    adapter.Update(ds, "table1");
    }
    آخرین ویرایش به وسیله Sajjad.Aghapour : سه شنبه 02 مهر 1387 در 09:06 صبح دلیل: یه اشتباه در کدها
    Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."

  3. #3
    VIP
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    نقل قول: مشکل این کد چیه؟

    چه خطايي ميگيره؟(متن خطا)
    من فكر ميكنم فيلد lastname بايد string باشه يعني:
    cmd.CommandText = "DELETE FROM table1 WHERE lastname='" + lname + "';";


    به تك كوتيشن ها قبل و بعد lname دقت كن .

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •