Использование представления из SQL Server 2008 в C # и Asp.net - PullRequest
3 голосов
/ 06 июля 2011

У меня есть проект на C # / ASP.net, который включает в себя разработанную мной базу данных, которая включает удобный и удобный View, который будет удобен в использовании.

У меня есть настройка соединения SQL с SQL Server2008 БД я создал.Кажется, что он подключается нормально, но я не понимаю, как на самом деле использовать созданный мною вид без жесткого кодирования запроса в программе (мне говорили, что иногда это плохо?).

Это мое подключение, которое я установил:

    SqlConnection conn = null;
    conn = new SqlConnection("Data Source=raven\\sqlexpress;Initial Catalog=ucs;Integrated Security=True;Pooling=False");
    conn.Open(); 
    SqlCommand command = new SqlCommand(query, conn);

По сути, мне нужен некоторый код для запроса с использованием этого представления.Я могу видеть Просмотр и смотреть на результаты, которые будут получены, но не получить к нему доступ в программе!Представление называется «UserView».Помощь очень ценится!

Ответы [ 2 ]

12 голосов
/ 06 июля 2011

Вы можете использовать что-то вроде следующего.Но обычно вводить жестко запрограммированные команды SQL в код .Net считается злом.Вместо этого гораздо лучше и безопаснее использовать хранимые процедуры.

Это должно помочь вам начать.Вы можете изменить его для использования хранимых процедур:

  1. , изменив command.CommandType, чтобы указать, что это хранимый вызов процедуры
  2. И добавив соответствующие параметры в команду, которая нужна вашему SP.1009 *
  3. Измените command.CommandText на имя вашего SP, исключив таким образом жестко закодированный SQL.

Пример кода ниже:

using (SqlConnection connection = new SqlConnection("Data Source=raven\\sqlexpress;Initial Catalog=ucs;Integrated Security=True;Pooling=False"))
{
    using (SqlCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT * from your_view WHERE your_where_clause";

        connection.Open();
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                // process result
                reader.GetInt32(0); // get first column from view, assume it's a 32-bit int
                reader.GetString(1); // get second column from view, assume it's a string
                // etc.
            }
        }
    }
}
0 голосов
/ 25 июля 2014

Используя VS2013, добавьте новый DataSet в ваш проект. Перетащите вид из проводника сервера в область конструктора DataSet.

...