使用条件删除多个行
本文关键字:删除 条件 | 更新日期: 2023-09-27 18:03:50
你好,试图根据条件删除表的几行,但是我需要一些帮助,基本上我想删除所有行,而条件为真,然后停止并保持其余部分不变。
编辑:关于评论我道歉,我相当新的编程,对不起,如果没有做正确的事情,我新的这个网站以及。
private void button1_Click(object sender, EventArgs e)
{
string varsql2check = "";
do{
SqlConnection conn = new SqlConnection(@"Data Source=.'wintouch;Initial Catalog=bbl;User ID=sa;Password=Pa$$w0rd");
conn.Open();
string varsql = "DELETE FROM wgcdoccab WHERE 'tipodoc' ='FSS' and 'FP' "; //sql query
SqlCommand cmd = new SqlCommand(varsql, conn);
SqlDataReader dr = cmd.ExecuteReader();
} while(varsql2check = "SELECT * from wgcdoccab where 'tipodoc' !='FSS' and !='FP' and contribuinte !='999999990' and datadoc != CONVERT(varchar(10),(dateadd(dd, -1, getdate())),120);");
dr.Close();
conn.Close();
}
你需要做的是:
private void button1_Click(object sender, EventArgs e)
{
bool check = true;
do
{
string connectionString = @"Data Source=.'wintouch;Initial Catalog=bbl;User ID=sa;Password=Pa$$w0rd";
string queryString = string.Empty;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
queryString = "DELETE FROM wgcdoccab WHERE 'tipodoc' ='FSS' and 'FP' ";
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
queryString = "SELECT * from wgcdoccab where 'tipodoc' !='FSS' and !='FP' and contribuinte !='999999990' and datadoc != CONVERT(varchar(10),(dateadd(dd, -1, getdate())),120)";
using (SqlCommand command = new SqlCommand(queryString, connection))
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
check = true;
}
else
{
check = false;
}
}
}
}
while (check);
}
一般来说,我编辑你的代码是:
增加
using
语句以释放已建立的连接中的资源您应该使用从查询执行返回的类型。
ExecuteNonQuery()
将返回受影响的行数,在我们的示例中,我们对delete查询之后从select语句返回的行特别感兴趣。我们创建了一个读取器,并根据行数(在本例中,我们只对是否有行感兴趣)相应地进行分支。如果我们从选择中没有得到行(所有内容都被删除),我们只是继续,如果我们什么也没有得到(reader.HasRows
返回false),我们重复删除查询并再次检查。