Hallo, ich versuche, einige Daten aus einer einfachen Datenbank zu erhalten, die ich mit einem separaten Steuerelement auf dem Hauptformular erstellt habe. Dieses Programm läuft jedoch, wenn ich versuche, das Hauptformular in der Designeransicht anzuzeigen, erhalte ich diese Ausnahme "ExecuteReader: Connection property has not been initialized."
Dies ist mein Code für das 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));
}
}
}
}
Und meine Hauptform:
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;
}
}
}
Dies alles scheint gut zu funktionieren, wenn ich getData() und addData() in einem Button-Handler aufrufe, aber nicht im Formular laden. Das Projekt läuft immer noch ohne Fehler, die ich nur diese Ausnahme erhalten, wenn Sie versuchen, Designer-Ansicht im Hauptformular anzuzeigen.