2010-12-06 3 views
0

У меня есть оператор SQL Select, чтобы выбрать идентификатор корзины, где идентификатор пользователя равен определенному идентификатору.Как использовать ExecuteScalar в этом сценарии?

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

BasketPage.SelectCommand="SELECT BasketID FROM tblBasket WHERE (UserID = '9f96bd94-91b9-4328-8214-4eac179c3a26')" 

var BasketID = BasketPage.ExecuteScalar().ToString(); 

Но, видимо, мне нужно, чтобы создать новый экземпляр Command SQL для того, чтобы работать, как это сделать для команды выбора BasketPage?

+1

Почему, по-вашему, вам нужно создать новый экземпляр команды SQL? – 2010-12-06 00:52:13

+0

Поскольку метод не появился или не разрешил мне использовать его, если я не создал новый экземпляр. – 2010-12-06 00:56:32

ответ

2

Я не знаю о вашей BasketPage, но нет никакого способа, вы не можете выполнить этот запрос к основной базе данных, используя ExecuteScalar способ. Предполагая, что SQL Server:

using (var connection = new SqlConnection(connString)) 
    using (var command = connection.CreateCommand()) { 
     command.CommandText = "select BasketId from tblBasket where UserId = N'9f96bd94-91b9-4328-8214-4eac179c3a26'"; 
     command.CommandType = CommandType.Text; 

     try { 
      var basketId = (string)command.ExecuteScalar(); // Assuming BasketId is a string, since you called ToString() in your question. 
     } finally { 
      command.Dispose(); 
      connection.Dispose(); 
     } 
    } 
1

Предполагая, что вы используете SQL Server вы пытались что-то вроде

BasketPage.SelectCommand = 
     new SqlCommand("SELECT BasketID FROM tblBasket WHERE (UserID = '9f96bd94-91b9-4328-8214-4eac179c3a26')", 
         "yourconnectionstring"); 
Смежные вопросы