删除表中的所有行

本文关键字:删除 | 更新日期: 2023-09-27 18:01:36

我试图删除与循环表中的所有行,但我不能这样做。我正在用reportBindingSource计算表中的行数。count,但是我找不到从数据库中删除整行(id, nameofcase, price)的方法。

  private void button1_Click(object sender, EventArgs e)
        {
            //delete all lines from the table
            count = reportBindingSource.Count;
            MessageBox.Show(count.ToString());
            for (int x = 0; x < count; x++) 
            {
                try
                {
                    //delete
                }
                catch(Exception ex)
                {
                    MessageBox.Show("not deleted");
                }
                MessageBox.Show(x.ToString());
            }
            this.Close();
        }

有人能帮我吗?

更新1

 try
                {
                    using(SqlConnection cnn = new SqlConnection("server=kosh-pc;User Id=root;Persist Security Info=True;database=lawyersprice"))
                    using(SqlCommand cmd = new SqlCommand("TRUNCATE TABLE report", cnn))
                     {
                         cnn.Open();
                         cmd.ExecuteNonQuery();
                     }
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }

我根据答案尝试了这个,但没有连接,是的,我安装了。net

删除表中的所有行

要从a BindingSource中删除所有元素,只需调用

 reportBindingSource.Clear();

不需要遍历单个元素

如果你想从数据库表中删除所有的行,那么你需要准备并执行一个适合你的数据库类型的Sql命令。

MySql示例-需要MySql. NET连接器和对MySql. data .dll的适当引用

(警告从数据库中删除行,没有任何异常)

 using(MySqlConnection cnn = new MySqlConnection(....connectionstring..))
 using(MySqlCommand cmd = new MySqlCommand("TRUNCATE TABLE yourTableName", cnn))
 {
     cnn.Open();
     cmd.ExecuteNonQuery();
 }

相反,如果你有条件那么你需要

(这只从数据库中删除满足条件的行)

 using(MySqlConnection cnn = new MySqlConnection(....connectionstring..))
 using(MySqlCommand cmd = new MySqlCommand("DELETE FROM yourTableName WHERE ... your condition...", cnn))
 {
     cnn.Open();
     cmd.ExecuteNonQuery();
 }