我创建了两个存储过程,一个用于读取数据行,一个用于删除,但我想知道是否可以在读取记录时删除记录,以及它是否是最佳实践?
例如
while (rdr.Read())
{
If(rdr[abc].ToString() != Null)
{Maybe delete it ?}
}
我的问题是,我可以在阅读时删除一行吗?:)
我创建了两个存储过程,一个用于读取数据行,一个用于删除,但我想知道是否可以在读取记录时删除记录,以及它是否是最佳实践?
例如
while (rdr.Read())
{
If(rdr[abc].ToString() != Null)
{Maybe delete it ?}
}
我的问题是,我可以在阅读时删除一行吗?:)
基本上,sql server 不允许您同时执行两个存储过程。我想你可以参考链接如何并行运行存储过程
这就是你可以用 c# 做的事情
DataTable table = GetTable(); // Get the data table.
foreach (DataRow row in table.Rows) // Loop over the rows.
{
string getvalue= row[1].ToString();
If( getvalue == your condition || getvalue == DBNull.Value)
{
table.Row.Remove(row[1]);
}
} }
你试过这个
SqlCommand cmd = new SqlCommand("select * from yourtable", con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string value=dr[0].ToString();
if (value == "yourcondition")
{
SqlCommand cmd2 = new SqlCommand("delete from yourtable where columnname ='"+value+"'", con2);
con2.Open();
cmd2.ExecuteNonQuery();
con2.Close();
}
} dr.Close();
con.Close();