Привет. Я пытаюсь получить некоторые данные из простой базы данных, которую я создал, используя отдельный элемент управления в главной форме.Однако эта программа запускается, когда я пытаюсь просмотреть основную форму в представлении конструктора, я получаю следующее исключение: «ExecuteReader: свойство подключения не было инициализировано».
Это мой код для GetControl:
namespace Controls
{
public partial class GetControl : UserControl
{
private SqlCeConnection mConnection = null;
private SqlCeDataReader dataReader = null;
public SqlCeConnection Connection
{
set { mConnection = value; }
}
public GetControl()
{
InitializeComponent();
}
private void GetControl_Load(object sender, EventArgs e)
{
getData();
addData();
}
private void getData()
{
SqlCeCommand command = new SqlCeCommand("SELECT FirstName, LastName FROM Contacts", mConnection);
dataReader = command.ExecuteReader();
}
private void addData()
{
while (dataReader.Read())
{
contactList.Items.Add(dataReader.GetString(0) + " "
+ dataReader.GetString(1));
}
}
}
}
И моя основная форма:
namespace Phonebook_Application
{
public partial class Phonebook_MainForm : Form
{
SqlCeConnection con = new SqlCeConnection("Data Source=Phonebook.sdf;Persist Security Info=false;");
public Phonebook_MainForm()
{
InitializeComponent();
con.Open();
getControl1.Connection = con;
}
}
}
Кажется, все это работает нормально, если я вызываю getData () и addData () в обработчике кнопок, но не при загрузке формы.Проект по-прежнему выполняется без ошибок. Я получаю это исключение при попытке просмотреть представление дизайнера в основной форме.