0

我创建了两个存储过程,一个用于读取数据行,一个用于删除,但我想知道是否可以在读取记录时删除记录,以及它是否是最佳实践?

例如

while (rdr.Read())
{
    If(rdr[abc].ToString() != Null)
    {Maybe delete it ?}
}

我的问题是,我可以在阅读时删除一行吗?:)

4

2 回答 2

1

基本上,sql server 不允许您同时执行两个存储过程。我想你可以参考链接如何并行运行存储过程

于 2012-07-26T09:35:24.013 回答
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();
于 2012-07-26T09:37:01.763 回答