Как запустить программу Python в командной строке в Windows 7?

При запросе к базе данных с тем же запросом, но с разными параметрами, что лучше:

  • сделать это за одно использование,
  • или создать два отдельных запросы?

Пример одиночного использования:

using (SqlCommand addProduct = new SqlCommand(@"insert into [Products].[Products] ([Name], [Price]) values (@name, @price)", sqlConnection))
{
    // Insert the first product.
    addProduct.Parameters.AddWithValue("@name", "Product 1");
    addProduct.Parameters.AddWithValue("@price", 41F);
    int countAffectedRows = addProduct.ExecuteNonQuery();
    Debug.Assert(countAffectedRows == 1, "Wrong number of rows affected.");

    addProduct.Parameters.Clear();

    // Insert the second product.
    addProduct.Parameters.AddWithValue("@name", "Product 2");
    addProduct.Parameters.AddWithValue("@price", 49.9);
    countAffectedRows = addProduct.ExecuteNonQuery();
    Debug.Assert(countAffectedRows == 1, "Wrong number of rows affected.");
}

Пример того же кода с использованием двух отдельных запросов:

// Insert the first product.
using (SqlCommand addProduct = new SqlCommand(@"insert into [Products].[Products] ([Name], [Price]) values (@name, @price)", sqlConnection))
{
    addProduct.Parameters.AddWithValue("@name", "Product 1");
    addProduct.Parameters.AddWithValue("@price", 41F);
    int countAffectedRows = addProduct.ExecuteNonQuery();
    Debug.Assert(countAffectedRows == 1, "Wrong number of rows affected.");
}

// Insert the second product.
using (SqlCommand addProduct = new SqlCommand(@"insert into [Products].[Products] ([Name], [Price]) values (@name, @price)", sqlConnection))
{
    addProduct.Parameters.AddWithValue("@name", "Product 2");
    addProduct.Parameters.AddWithValue("@price", 49.9);
    int countAffectedRows = addProduct.ExecuteNonQuery();
    Debug.Assert(countAffectedRows == 1, "Wrong number of rows affected.");
}

На мой взгляд, следует предпочесть второй, потому что:

  • он делает более понятным где расположена команда SQL и сколько раз она выполняется,
  • легче изменить, если в будущем по какой-то причине запрос должен быть изменен в одном случае, но не в другом,
  • первый позволяет легко забыть о SqlCommand.Parameters.Clear () .

С другой стороны, в первом примере более четко указано, что запрос одинаков в обоих случаях, и изменяются только параметры.

14
задан Arseni Mourzenko 6 January 2011 в 23:52
поделиться