Wendelius
ExecuteNonQuery выполняет команду, подобную процедуре или инструкции INSERT. Если вы хотите получить результаты, которые возвращает оператор SELECT, вы должны использовать, например Свойство sqlcommand.Метод ExecuteReader (System.Data.SqlClient)[^]
Таким образом, код может выглядеть примерно так
...
conn.Open();
comm.ExecuteNonQuery();
SqlDataReader reader = comm.ExecuteReader();
if (reader.Read()) {
SearchImg.ImageUrl = "~/images/" + reader["Image"].ToString();
}
conn.Close();
...
Обратите внимание, что вы должны утилизировать объекты, когда они больше не используются. Самый простой способ-это использовать
using
блок. Кроме того, вы должны иметь правильную обработку ошибок в случае, если что-то пойдет не так. Например, взгляните на
Правильное выполнение операций с базой данных[
^]
Richard Deeming
Если вы возвращаете только первое поле первой записи из результирующего набора, то ExecuteScalar
было бы проще:
conn.Open();
try
{
object image = comm.ExecuteScalar();
if (image != null && !Convert.IsDBNull(image))
{
SearchImg.ImageUrl = "~/images/" + image;
}
}
finally
{
conn.Close();
}