こんにちは私は、メインフォーム上の別のコントロールを使用して作成した単純なデータベースからデータを取得しようとしています。しかし、このプログラムは、デザイナビューでメインフォームを表示しようとすると実行されますが、この例外は "ExecuteReader:Connectionプロパティが初期化されていません。"C#ADO.NET例外:ExecuteReader:接続プロパティが初期化されていません
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));
}
}
}
}
そして、私のメインフォーム::
これはGetControlのための私のコードです。このすべてが正常に動作するようです
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()を呼び出した場合ハンドラはフォームのロードではありません。プロジェクトはまだエラーなく実行されていますが、デザイナービューをメインフォームで表示しようとすると例外が発生します。
^_ ^ちょっとおかげで非常に多く、私は私のGetControl_Load方法にあることを追加し、それが今で素晴らしい作品。 – Daniel
あなたはこれを答えとしてマークし、それが有益であれば投票してください。そうすれば、このサイトはうまく動作します:http://stackoverflow.com/faq#howtoask? – DaveShaw