我创建了两个用于读取Datarows的存储过程和一个用于删除的存储过程,但我想知道如果我可以在读取它们时删除记录以及它是否是最佳实践?
e.g。
while (rdr.Read())
{
If(rdr[abc].ToString() != Null)
{Maybe delete it ?}
}
我的问题是,我可以在阅读时删除一行吗? :)
答案 0 :(得分:1)
基本上,sql server不允许您同时执行两个存储过程。我想你可以参考链接How can I run stored procedures in parallel
答案 1 :(得分:1)
这是你可以用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();