删除查询不起作用 SQL c#
Delete query not woking SQL c#
我一直在尝试从 table 中删除行,但我编写的代码不起作用,我不确定是 SQL 语法还是代码本身,visual studio 没有抛出任何错误,它只是毫无问题地启动程序,在我单击删除按钮后,程序冻结,我什至无法关闭它。
如果我在执行此操作后检查数据库,它保持不变。
另外,如果我解释得不是很好,我很抱歉,英语不是我的母语,所以对我来说有点难,提前谢谢你。
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("DOING STUFF");
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 serie ='1' tipodoc ='FSS' AND and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120) ";
SqlCommand command = new SqlCommand(queryString, connection);
//command.Connection.Open();
command.ExecuteNonQuery();
}
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
queryString = "SELECT * FROM wgcdoccab WHERE serie ='1' tipodoc ='FSS' AND and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120) ";
using (SqlCommand command = new SqlCommand(queryString, connection))
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
check = true;
}
else
{
check = false;
MessageBox.Show("STILL DOING STUFF");
}
command.Connection.Close();
}
}
}
while (check);
DELETE
和 SELECT
的内联查询都不正确。更正后的查询将如下所示。
删除查询
DELETE FROM wgcdoccab WHERE serie ='1' AND tipodoc ='FSS' AND contribuinte ='999999990'
and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120)
Select查询
SELECT * FROM wgcdoccab WHERE serie ='1' AND tipodoc ='FSS' AND contribuinte ='999999990'
and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120)
我不确定你怎么想 SQL 命令是如何工作的,但它们肯定不是异步的,所以你既不需要循环也不需要第二个 using
块来检查行是否你刚刚删除的还在。删除过程只有在所有行都被删除后才会结束。
另外,您发布的代码不可能是真实的代码,因为您的 WHERE
子句中的语法无效,您应该得到一个 SQL 异常。
因此您的代码可以缩短为以下内容(也修复了 WHERE
子句):
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("DOING STUFF");
string connectionString = @"Data Source=.\wintouch;Initial Catalog=bbl;User ID=sa;Password=Pa$$w0rd";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string queryString = "DELETE FROM wgcdoccab WHERE serie ='1' tipodoc ='FSS' AND and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120) ";
SqlCommand command = new SqlCommand(queryString, connection);
command.ExecuteNonQuery();
}
}
我一直在尝试从 table 中删除行,但我编写的代码不起作用,我不确定是 SQL 语法还是代码本身,visual studio 没有抛出任何错误,它只是毫无问题地启动程序,在我单击删除按钮后,程序冻结,我什至无法关闭它。 如果我在执行此操作后检查数据库,它保持不变。
另外,如果我解释得不是很好,我很抱歉,英语不是我的母语,所以对我来说有点难,提前谢谢你。
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("DOING STUFF");
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 serie ='1' tipodoc ='FSS' AND and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120) ";
SqlCommand command = new SqlCommand(queryString, connection);
//command.Connection.Open();
command.ExecuteNonQuery();
}
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
queryString = "SELECT * FROM wgcdoccab WHERE serie ='1' tipodoc ='FSS' AND and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120) ";
using (SqlCommand command = new SqlCommand(queryString, connection))
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
check = true;
}
else
{
check = false;
MessageBox.Show("STILL DOING STUFF");
}
command.Connection.Close();
}
}
}
while (check);
DELETE
和 SELECT
的内联查询都不正确。更正后的查询将如下所示。
删除查询
DELETE FROM wgcdoccab WHERE serie ='1' AND tipodoc ='FSS' AND contribuinte ='999999990'
and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120)
Select查询
SELECT * FROM wgcdoccab WHERE serie ='1' AND tipodoc ='FSS' AND contribuinte ='999999990'
and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120)
我不确定你怎么想 SQL 命令是如何工作的,但它们肯定不是异步的,所以你既不需要循环也不需要第二个 using
块来检查行是否你刚刚删除的还在。删除过程只有在所有行都被删除后才会结束。
另外,您发布的代码不可能是真实的代码,因为您的 WHERE
子句中的语法无效,您应该得到一个 SQL 异常。
因此您的代码可以缩短为以下内容(也修复了 WHERE
子句):
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("DOING STUFF");
string connectionString = @"Data Source=.\wintouch;Initial Catalog=bbl;User ID=sa;Password=Pa$$w0rd";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string queryString = "DELETE FROM wgcdoccab WHERE serie ='1' tipodoc ='FSS' AND and contribuinte ='999999990' and datadoc = CONVERT(varchar(10),(dateadd(dd, -2, getdate())),120) ";
SqlCommand command = new SqlCommand(queryString, connection);
command.ExecuteNonQuery();
}
}