Получать данные с SQL Server с помощью ADO.NET

2

Есть ли учебник для этого в SQL Server 2008? У вас есть пример?.

Возможно ли выполнить хранимую процедуру и получить результат на С# или что-то в этом роде?

  • 0
    msdn.microsoft.com/en-us/sqlserver/ff681103
  • 0
    Я бы рекомендовал сначала понять концепции. Нет никакой разницы в том, как код ADO.NET работает с SQL Server 2005/2008. Все зависит от того, какие объекты предоставляет пространство имен System.Data.SQLClient и как они связаны / различаются, а также какие методы имеют эти объекты.
Теги:
sql-server
ado.net

1 ответ

8
Лучший ответ

Хорошим местом для начала является SqlDataReader класс:

private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }
}

В частности: Использование параметров с помощью SqlCommand и хранимой процедуры

static void GetSalesByCategory(string connectionString, 
    string categoryName)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        // Create the command and set its properties.
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandText = "SalesByCategory";
        command.CommandType = CommandType.StoredProcedure;

        // Add the input parameter and set its properties.
        SqlParameter parameter = new SqlParameter();
        parameter.ParameterName = "@CategoryName";
        parameter.SqlDbType = SqlDbType.NVarChar;
        parameter.Direction = ParameterDirection.Input;
        parameter.Value = categoryName;

        // Add the parameter to the Parameters collection. 
        command.Parameters.Add(parameter);

        // Open the connection and execute the reader.
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();

        if (reader.HasRows)
        {
            while (reader.Read())
            {
                Console.WriteLine("{0}: {1:C}", reader[0], reader[1]);
            }
        }
        else
        {
            Console.WriteLine("No rows found.");
        }
        reader.Close();
    }
}
  • 0
    Только одна вещь, вы можете иметь SqlDataReader в условии использования для лучшего способа. if (reader.HasRows) {while (reader.Read ()) {Console.WriteLine ("{0}: {1: C}", reader [0], reader [1]); }} else {Console.WriteLine ("Строки не найдены."); }
  • 1
    @ydobonmai Немного забегая вперед ... но если вы хотите придираться, то SqlCommand тоже одноразовый. Можно также добавить обработку исключений, пока мы на этом. Черт возьми, давайте просто напишем для него код Аскера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню