0

Datarows の読み取り用と削除用の 2 つのストアド プロシージャを作成しましたが、レコードの読み取り中にレコードを削除できるかどうか、またベスト プラクティスかどうか疑問に思っていました。

例えば

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

私の質問は、読み取り中に行を削除できますか? :)

4

2 に答える 2

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 に答える
1

基本的に、SQL Server では 2 つのストア プロシージャを同時に実行することはできません。リンクを参照できると思いますストアドプロシージャを並行して実行するにはどうすればよいですか

于 2012-07-26T09:35:24.013 に答える