У меня есть проект winforms, который зависит от пользовательской библиотеки. Все, что работает с приложением, отлично работает, за исключением проблемы, которую я не могу зафиксировать. В принципе у меня есть форма, которая создается из другой формы, которая отображает его в виде диалога:Перерыв в dubugger не «работает». Выполнение кода продолжается
DataItems.ImportForm frmImportTextDelimited = new DataItems.ImportForm();
frmImportTextDelimited.ShowDialog();
Этот диалог формы заполняет выпадающий список из SqlServer, используя следующую функцию, которая из библиотеки классов в растворе:
public class AuthorityTypeSearcher
{
public List<IntValuePair> GetAllAuthorityTypes()
{
List<IntValuePair> returnList = new List<IntValuePair>();
using (var conn = new SqlConnection(Globals.ConnString))
{
var cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT FROM tblAuthorityTypes";
conn.Open();
IntValuePair ivp;
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
ivp = new IntValuePair();
ivp.TheInt = Convert.ToInt32(rdr["ID"]);
ivp.TheValue = rdr["AuthorityType"].ToString() ;
}
}
return returnList;
}
Эта функция не возвращает значение, поэтому я поставил точку останова на линии:
conn.Open();
Когда код выполняется, то Visual Studio правильно влезает в эта линия. Что делает меня с ума, что, когда я шаг вперед к линии:
SqlDataReader rdr = cmd.ExecuteReader();
отладчик не будет двигаться вперед к следующей строке, и выполнение кода появляется, чтобы вернуться в пользовательский интерфейс (отображается форма). Также странно, что если я взаимодействую с формой (т. Е. Нажимаю кнопку в форме, заполняющей другое поле), отладчик снова разрывается, я возвращаюсь в визуальную студию, которая правильно «ломается» к строке, связанной с этой операцией. По какой-то причине, по какой-то причине, когда я добираюсь до строки, которая создает средство чтения данных, выполнение кода просто «оставляет» библиотеку и возвращается в приложение winforms.
Когда выполнение кода вернулось в пользовательский интерфейс, если я вернусь в визуальную студию, кажется, что выполнение кода продолжается, по крайней мере, я не могу нажать «продолжить» (воспроизведение). Выполнение кода не приостанавливается.
Что же странно, что, если я закрываю форму (диалог), он распадается обратно в отладчик на линии от основной формы на линии:
frmImportTextDelimited.ShowDialog();
, как будто я все еще отладки.
Надеюсь, это имеет смысл? Я не могу понять, почему, когда отладка, я не могу пройти мимо строки, где я создаю устройство для чтения данных, и почему выполнение кода возвращается к пользовательскому интерфейсу, но возвращается в отладчик с закрытым диалоговым окном. Ошибка никогда не возникает.
Спасибо за любой совет!
Это просто опечатка? В вашем запросе sql нет возвращаемого списка столбцов. – Steve
У вас есть '' SELECT FROM tblAuthorityTypes '' в качестве вашего запроса. Вы имели в виду что-то вроде: «SELECT * FROM tblAuthorityTypes» '? – Brian
Typo но для ударов я обновил его до «SELECT ID, AuthorityType FROM tblAthorityTypes» с теми же результатами. – rune711