2012-01-11 3 views
3

Я пытаюсь отобразить результат SQL-запроса на ярлыке, но он не отображается. Это мой код:Отобразить результат SQL-запроса в метке в asp.net

 string result = "SELECT ACTIVE FROM [dbo].[test] WHERE ID = '" + ID.Text + "' "; 
    SqlCommand showresult = new SqlCommand(result, conn); 
    conn.Open(); 
    showresult.ExecuteNonQuery(); 
    string actresult = ((string)showresult.ExecuteScalar()); 
    ResultLabel.Text = actresult; 
    conn.Close(); 

Нужна помощь, пожалуйста. Благодаря!

+0

Вы пробовали отлаживать? Действительно ли ваш запрос возвращает данные? Если это так, я бы не рекомендовал использовать (string) сначала получить данные, поскольку он приходит int, double и т. Д., А затем, когда вы назначаете его метке, делайте myVariable.ToString(); –

+0

Да, запрос возвращает данные. Я пытался использовать int и байт и все еще не работает. – Eximus

+0

, какой тип данных имеет столбец Active? –

ответ

1

Есть ли там опечатка? У вас есть два вызова базы данных:

showresult.ExecuteNonQuery(); 

Это не будет возвращать значение, и я не знаю, почему вы бы его там

string actresult = ((string)shresult.ExecuteScalar()); 

Если у вас есть переменная shresult, этот запрос должна ошибка. Что такое переменная shresult?

8

Попробуйте этот.

string result = "SELECT ACTIVE FROM [dbo].[test] WHERE ID = '" + ID.Text + "' "; 
    SqlCommand showresult = new SqlCommand(result, conn); 
    conn.Open(); 
    ResultLabel.Text = showresult.ExecuteScalar().ToString(); 
    conn.Close(); 
+0

Спасибо ... это работает ... – Eximus

+4

Пожалуйста, не связывайте ваш запрос как строку. Использование параметров с помощью 'SqlCommand' предотвращает внедрение sql. –

1

Использование SqlParameter для фильтрации результата и вызвать ExecuteScalar() или ExecuteReader() метод.

string result = "SELECT ACTIVE FROM [dbo].[test] WHERE [email protected]"; 
SqlCommand showresult = new SqlCommand(result, conn); 
// If ID is int type 
showresult.Parameters.Add("@ID",SqlDbType.Int).Value=ID.Txt; 

// If ID is Varchar then 
//showresult.Parameters.Add("@ID",SqlDbType.VarChar,10).Value=ID.Txt; 

    conn.Open(); 
    string actresult = (string)showresult.ExecuteScalar(); 
    conn.Close(); 
    if(!string.IsNullOrEmpty(actresult)) 
     ResultLabel.Text = actresult; 
    else 
     ResultLabel.Text="Not found"; 
+1

это приведет к исключению ... shresult не объявлен – CCBlackburn

+1

@CCBlackburn - Спасибо! Я только что скопировал текст из OP. – adatapost

1
using (SqlConnection conn = new SqlConnection(connectionString)) 
{ 
    string result = "SELECT ACTIVE FROM [dbo].[test] WHERE ID = @id"; 
    SqlCommand showresult = new SqlCommand(result, conn); 
    showresult.Parameters.AddWithValue("id", ID.Text); 

    conn.Open(); 
    ResultLabel.Text = showresult.ExecuteScalar().ToString(); 
    conn.Close(); 
} 

Это расположит соединение и не имеет конкатенацию в запросе.

0
conn.Open(); 
string result = "SELECT ACTIVE FROM test WHERE ID = '" + ID.Text + "' "; 
SqlCommand showresult = new SqlCommand(result, conn); 

showresult.ExecuteNonQuery(); 
int actresult = ((int)showresult.ExecuteScalar()); 
ResultLabel.Text = actresult.Tostring(); 
conn.Close(); 
+0

Пожалуйста, см. Комментарий OP, который он пробовал, но он не решил его – CarbineCoder

Смежные вопросы