Создайте ADO. NET только для чтения SQL Набор данных сервера с использованием хранимой процедуры в VS2015 / C # - PullRequest
0 голосов
/ 13 марта 2020

Я хочу создать ADO. NET только для чтения SQL Набор данных сервера с использованием хранимой процедуры в VS2015 с C#. Есть ли способ сделать это?

Проблема в том, что когда я пытаюсь создать объект команды для установки хранимой процедуры, которую я хочу использовать, он выдает ошибки. Я знаю, что что-то упустил, но я не могу найти что-либо в файлах справки MS, которые дают пример того, как это сделать. Я не хочу использовать Linq! Будем очень благодарны за любую помощь, которую вы можете оказать.

try
{
     string connString = AdoHelper.ConnectionString;

     var myConnection = new SqlConnection(connString);
     CommandType myCommand = System.Data.CommandType.StoredProcedure;

     using (myConnection)
     {
          myConnection.Open();
          // myCommand. = myConnection;
          // myCommand.CommandType = CommandType.StoredProcedure;
          // myCommand.CommandTimeout = 540;

          if (this.optInStockOnly.Checked == true)
          {
              myCommand.CommandText = "InventoryGetLookupDataInStockOnly"; // Stored procedure Name
          }
          else
          {
              myCommand.CommandText = "InventoryGetLookupData";     // Stored procedure name 
          }

          myCommand.Parameters.AddWithValue(parameterName: "@CurrentWareHouseCode", value: MyGlobals.CurrentUsersInfo.CurrentUserWarehousecode);

          SqlDataReader reader = myCommand.ExecuteReader();

          if (reader.Read())
          {
              // set recordset here and do rest of the stuff I want
          }
    }
}

1 Ответ

0 голосов
/ 13 марта 2020

Как уже упоминалось в комментарии, вы не связали команду с объектом подключения.

посмотрите этот пример:

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandTimeout = 15;
        command.CommandType = CommandType.Text; // CommandType.StoredProcedure; in case this was a Proc
        command.CommandText = queryString; // Proc name

        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }
    }
}

Подробнее о this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...