Отобразить результат SQL-запроса в метке в asp.net - PullRequest
3 голосов
/ 11 января 2012

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

     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();

Нужна помощь, пожалуйста. Спасибо!

Ответы [ 5 ]

9 голосов
/ 11 января 2012

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

   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();
1 голос
/ 01 июня 2012
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();
}

При этом будет удалено соединение, и в запросе нет конкатенации строк.

1 голос
/ 11 января 2012

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

 string result = "SELECT ACTIVE FROM [dbo].[test] WHERE ID=@ID";
 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 голос
/ 11 января 2012

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

showresult.ExecuteNonQuery();

Это не вернет значение, и я не уверен, почему оно у вас будет

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

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

0 голосов
/ 21 ноября 2013
 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();
...