Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с показом рисунков / 1 сообщений из 1, страница 1 из 1
02.10.2006, 14:38
    #34026127
Andrew_SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с показом рисунков
Показываю рисунки через базу с помощью хэндлера. Однако при показе на странице нескольких картинок -- не все они прорисовываются. Что делать с этим?
Привожу код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;

public class Image : IHttpHandler
{

    #region WorkWithConnection

    private void CloseSqlConnection(SqlConnection conn)
    {
        if (conn.State == ConnectionState.Open)
        {
            conn.Close();
        }

    }

    private void OpenSqlConnection(SqlConnection conn)
    {
        if (conn.State == ConnectionState.Closed)
        {
            conn.Open();
        }
    }

    #endregion

    private static bool _isExec = false;
    public static bool IsExec
    {
        get
        {
            return _isExec;
        }
        set
        {
            _isExec = value;
        }
    }
    //Свойство, указывающее на то, может ли класс вызываться без повторной инициализации
    bool IHttpHandler.IsReusable
    {
        get
        {
            return true;
        }
    }

    //Метод ProcessRequest, выполняющий обработку запроса
    void IHttpHandler.ProcessRequest(HttpContext context)
    {
        if (!IsExec)
        {
            lock (this)
            {
                try
                {
                    IsExec = true;
                    //Получаем значение идентификатора картинки
                    int id = Int32.Parse(context.Request.QueryString["ID"]);
                    //Создаем подключение к БД 

                    //SqlCommand myCmd = new SqlCommand("select image from ImagesHTML where id = @id", Connection.SqlConn);
                    string strSQL = "viewImage";
                    SqlCommand myCmd = new SqlCommand(strSQL, Connection.SqlConn);

                    myCmd.CommandType = CommandType.StoredProcedure;
                    myCmd.Parameters.Add("id", SqlDbType.Int).Value = id;

                    OpenSqlConnection(myCmd.Connection);

                    using (SqlDataReader rdr = myCmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        // Проверка на существование записи
                        if (rdr.Read())
                            // пишем содержимое картинки клиенту.
                            context.Response.BinaryWrite(rdr.GetSqlBinary( 0 ).Value);
                    }
                }
                catch (Exception ex)
                {
                    //throw new Exception(err.Message);
                    context.Response.Write(ex.Message);
                }
                finally
                {
                    CloseSqlConnection(Connection.SqlConn);
                    IsExec = false;
                }  
            }
        }
    }//Подключение к БД закрыто
}
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с показом рисунков / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]