StackOverflowException

Форум посвящён работе с базами данных в .NET.

Модератор: Ramzes

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

StackOverflowException

Сообщение Ramzes » 27.11.2007 (Вт) 13:47

есть такой метод
C# писал(а): public DataTable SqlExecuteDataTable(string sql)
{
DataTable dt=new DataTable();
try
{
SqlDataReader DReader;
m_DBCommand.CommandText = sql;
m_DBCommand.Connection.Open();
DReader = m_DBCommand.ExecuteReader();
dt.Load(DReader);
DReader.Close();
m_DBCommand.Connection.Close();
return dt;
}
catch (SqlException e
{
throw ex;
}
catch (Exception e
{
throw ex;
}
finally
{
if (m_DBCommand.Connection.State != ConnectionState.Closed)
{
m_DBCommand.Connection.Close();
}
}
}

если в качестве параметра передать строку

Код: Выделить всё
select b.ID [F00_ID], b.RecIndex [F10_N], a.Name [F10_Наименование], b.AltRequiredQnty [F11_Требуется], b.AltQnty [F10_Отпущено], b.PriceOV [F10_Цена ОВ], b.PriceAV [F10_Цена АВ], b.refDocInst [F00_refDocInst], b.ArticleRef [F00_ArticleRef], b.Price [F11_Цена] from base b left join Article a on b.ArticleRef = a.ID where 0 = 0  AND refDocInst = 135


то на строке dt.Load(DReader); получаем исключение
An unhandled exception of type 'System.StackOverflowException' occurred in System.Data.dll

причем никаких деталей по исключению нет, а если запрос видоизменить:
Код: Выделить всё
select b.ID , b.RecIndex , a.Name , b.AltRequiredQnty , b.AltQnty , b.PriceOV , b.PriceAV , b.refDocInst , b.ArticleRef , b.Price  from base b left join Article a on b.ArticleRef = a.ID where 0 = 0  AND refDocInst = 135

то все проходи без ошибок, почему?

добавлено
результат выполнения запроса в query analyzer
1003493097 1 NULL 0 0 0 0 135 0 0
1003493098 2 NULL 0 0 0 0 135 0 0
1003493099 3 NULL 0 0 0 0 135 0 0
1003493100 4 NULL 0 0 0 0 135 0 0
1003493101 5 NULL 0 0 0 0 135 0 0
1003493102 6 NULL 0 0 0 0 135 0 0

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 29.11.2007 (Чт) 1:30

Ramzes
По моему надо в запрос надо добавить AS
Код: Выделить всё
SELECT b.ID AS [F00_ID],

на сколько я понял, b.ID должно отобразиться в колонке с именем FOO_ID.

С наилучшими пожеланиями.
Met vriendelijke groetjes
VS2008 Pro FW3.5 SP1


Вернуться в ADO.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList