Datarows の読み取り用と削除用の 2 つのストアド プロシージャを作成しましたが、レコードの読み取り中にレコードを削除できるかどうか、またベスト プラクティスかどうか疑問に思っていました。
例えば
while (rdr.Read())
{
If(rdr[abc].ToString() != Null)
{Maybe delete it ?}
}
私の質問は、読み取り中に行を削除できますか? :)
Datarows の読み取り用と削除用の 2 つのストアド プロシージャを作成しましたが、レコードの読み取り中にレコードを削除できるかどうか、またベスト プラクティスかどうか疑問に思っていました。
例えば
while (rdr.Read())
{
If(rdr[abc].ToString() != Null)
{Maybe delete it ?}
}
私の質問は、読み取り中に行を削除できますか? :)
これは、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();
基本的に、SQL Server では 2 つのストア プロシージャを同時に実行することはできません。リンクを参照できると思いますストアドプロシージャを並行して実行するにはどうすればよいですか