0

複数の列の値をチェックする SQL テーブルから行を削除したいと考えています。私はそれを単一の列の値で行う方法を知っています:

SqlConnection connection = new SqlConnection("YourDatabaseConnectionString");

string sqlStatement = "DELETE FROM Customers WHERE ColumnID = @ColumnID";

try{
    connection.Open();
    SqlCommand cmd = new SqlCommand(sqlStatement, connection);
    cmd.Parameters.AddWithValue("@ColumnID", "SomeValueHere");
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();

}
finally {
    connection.Close();
}

しかし、複数の列の値をチェックするための構文は何ですか? また、値が Date (SQL) および Time7 (SQL) 形式の場合、値をどのようにフォーマットすればよいですか?

4

1 に答える 1

1

where条件にもう1つの句を追加します。両方の条件に一致するレコードを削除する場合は、を使用しAND、いずれかの条件に一致するレコードを削除する場合は、を使用します。OR

両方の条件を確認するためのクエリ

string sqlStatement = "DELETE FROM Customers WHERE
          ColumnID = @ColumnID AND ColumnName2=@SecondValue";

いずれかの条件を確認するためのクエリ

string sqlStatement = "DELETE FROM Customers WHERE 
            ColumnID = @ColumnID OR ColumnName2=@SecondValue";

したがって、コードは次のようになります

using(SqlConnection connection = new SqlConnection("YourDatabaseConnectionString"))
{

    string sqlStatement = "DELETE FROM Customers WHERE ColumnID = @ColumnID AND ColumnName2=@SecondValue";
    SqlCommand cmd = new SqlCommand(sqlStatement, connection);
    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@ColumnID", "SomeValueHere");
    cmd.Parameters.AddWithValue("@SecondValue", "OtherValue");

     try
     {
        connection.Open();
        cmd.ExecuteNonQuery();
     }
     catch(Exception ex)
     {
        //log error
     }    
}
于 2012-07-11T17:36:12.120 に答える