Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Я просил другую таблицу / 15 сообщений из 15, страница 1 из 1
18.04.2013, 16:21
    #38231181
Semyglass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
Добрый день!

В ASP.net Web-сайте следующая структура доступа к данным:

на странице вызывается метод для заполнения DataTable:
Код: c#
1.
DataTable dtArticle = MESQL.GetArticle("1=1 Order by [Date] desc");


метод GetArticle:
Код: c#
1.
2.
3.
4.
5.
6.
private static SQL sql = new SQL(System.Configuration.ConfigurationManager.ConnectionStrings["MESQL"].ToString());
...
public static DataTable GetArticle(string Condition)
{
    return sql.GetDataTable("Article", Condition);
}



метод GetDataTable в классе SQL:
Код: c#
1.
2.
3.
4.
public DataTable GetDataTable(string TableName, string Condition)
{
    return FillTable(TableName, Condition);
}



метод FillTable:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    private DataTable FillTable(string Table, string Filter)
    {
        DataTable Result = new DataTable();
        try
        {
            sqlCommand.CommandText = String.Format("SELECT * FROM [{0}] {1}", Table, (Filter == null ? "" : " Where " + Filter));
            sqlAdapter.SelectCommand = sqlCommand;
            
            lock (_ConnectionString) 
            {
                Open();
                sqlAdapter.Fill(Result);
                Close();
            }
        }
        catch (Exception ex)
        {
            _Error = ex;
            return null;
        }
        return Result;
    }



Проблема в том, что иногда в dtArticle после заполнения оказывается другая таблица (не Article).
Такое случается только на хостинге, т.е. отдебажить я не могу, на локальной машине все работает как надо. Может я пропустил что-то очевидное, или не совсем понимаю работу статических методов класса или еще чего-нибудь.

Заранее спасибо!
...
Рейтинг: 0 / 0
18.04.2013, 16:25
    #38231192
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
SemyglassТакое случается только на хостинге, т.е. отдебажить я не могу, на локальной машине все работает как надообратитесь к Вашим тестировщикам, пусть найдут как повторить
...
Рейтинг: 0 / 0
18.04.2013, 16:26
    #38231195
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
ваш врапер очень печальный, найдите приличнее или нормальную орм, особенно порадовало "Select *"
...
Рейтинг: 0 / 0
18.04.2013, 16:29
    #38231204
Semyglass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
ПаганельSemyglassТакое случается только на хостинге, т.е. отдебажить я не могу, на локальной машине все работает как надообратитесь к Вашим тестировщикам, пусть найдут как повторить

Воспроизводится рандомно, примерно один раз на 50 обновлений страницы.
...
Рейтинг: 0 / 0
18.04.2013, 16:30
    #38231209
Semyglass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
handmadeFromRuваш врапер очень печальный, найдите приличнее или нормальную орм, особенно порадовало "Select *"

Есть ли вероятность что проблема в этом?
...
Рейтинг: 0 / 0
18.04.2013, 16:42
    #38231249
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
SemyglassПаганельпропущено...
обратитесь к Вашим тестировщикам, пусть найдут как повторить

Воспроизводится рандомно, примерно один раз на 50 обновлений страницы.верните баг им обратно
пусть пошагово напишут
...
Рейтинг: 0 / 0
18.04.2013, 16:55
    #38231282
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
SemyglassЕсть ли вероятность что проблема в этом?
не могу сказать по таким скудным данным, логируйте запросы куда идет и какой конекшен. Я просто констатировал что ваш врапер не торт
...
Рейтинг: 0 / 0
18.04.2013, 16:58
    #38231290
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
SemyglassДобрый день!

В ASP.net Web-сайте следующая структура доступа к данным:

на странице вызывается метод для заполнения DataTable:
Код: c#
1.
DataTable dtArticle = MESQL.GetArticle("1=1 Order by [Date] desc");



метод GetArticle:
Код: c#
1.
2.
3.
4.
5.
6.
private static SQL sql = new SQL(System.Configuration.ConfigurationManager.ConnectionStrings["MESQL"].ToString());
...
public static DataTable GetArticle(string Condition)
{
    return sql.GetDataTable("Article", Condition);
}




метод GetDataTable в классе SQL:
Код: c#
1.
2.
3.
4.
public DataTable GetDataTable(string TableName, string Condition)
{
    return FillTable(TableName, Condition);
}




метод FillTable:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    private DataTable FillTable(string Table, string Filter)
    {
        DataTable Result = new DataTable();
        try
        {
            sqlCommand.CommandText = String.Format("SELECT * FROM [{0}] {1}", Table, (Filter == null ? "" : " Where " + Filter));
            sqlAdapter.SelectCommand = sqlCommand;
            
            lock (_ConnectionString) 
            {
                Open();
                sqlAdapter.Fill(Result);
                Close();
            }
        }
        catch (Exception ex)
        {
            _Error = ex;
            return null;
        }
        return Result;
    }




Проблема в том, что иногда в dtArticle после заполнения оказывается другая таблица (не Article).
Такое случается только на хостинге, т.е. отдебажить я не могу, на локальной машине все работает как надо. Может я пропустил что-то очевидное, или не совсем понимаю работу статических методов класса или еще чего-нибудь.

Заранее спасибо!

адовый код, давненько sql-иньекций не было?
...
Рейтинг: 0 / 0
18.04.2013, 16:59
    #38231293
Semyglass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
pation,

я не скажу Вам что это за сайт :)
...
Рейтинг: 0 / 0
18.04.2013, 17:22
    #38231357
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
Semyglass, и много у Вас статиков?
Код: c#
1.
2.
3.
4.
5.
6.
private static SQL sql = new SQL(System.Configuration.ConfigurationManager.ConnectionStrings["MESQL"].ToString());
...
public static DataTable GetArticle(string Condition)
{
    return sql.GetDataTable("Article", Condition);
}
...
Рейтинг: 0 / 0
18.04.2013, 17:25
    #38231370
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
SemyglasshandmadeFromRuваш врапер очень печальный, найдите приличнее или нормальную орм, особенно порадовало "Select *"

Есть ли вероятность что проблема в этом?Если вероятность, что проблема во врапере? Большая. Удивительно, что у Вас исключения не падают. Небось в строке подключения прописано: MultipleActiveResultSets=true.
...
Рейтинг: 0 / 0
18.04.2013, 17:30
    #38231381
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
Semyglassметод FillTable:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    private DataTable FillTable(string Table, string Filter)
    {
        DataTable Result = new DataTable();
        try
        {
            sqlCommand.CommandText = String.Format("SELECT * FROM [{0}] {1}", Table, (Filter == null ? "" : " Where " + Filter));
            sqlAdapter.SelectCommand = sqlCommand;
            
            lock (_ConnectionString) 
            {
                Open();
                sqlAdapter.Fill(Result);
                Close();
            }
        }
        catch (Exception ex)
        {
            _Error = ex;
            return null;
        }
        return Result;
    }

Пораньше бы надо lock делать, до sqlCommand.CommandText =
...
Рейтинг: 0 / 0
18.04.2013, 17:34
    #38231396
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
Ну и метод sqlAdapter.Fill(Result) сам откроет и закроет соединение, если надо.

P.S.: адъ.
...
Рейтинг: 0 / 0
18.04.2013, 17:37
    #38231405
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
Semyglass,
Код: c#
1.
2.
3.
4.
5.
6.
    lock (_ConnectionString) 
            {
                Open();
                sqlAdapter.Fill(Result);
                Close();
            }


это сайт для советской российской армии?
...
Рейтинг: 0 / 0
18.04.2013, 17:46
    #38231421
Semyglass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я просил другую таблицу
Большое всем спасибо. Особенно skyANA
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Я просил другую таблицу / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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