これはWindowsフォームアプリケーションです。クラスProgram.csと、リストボックスを含むフォームDeployerConsole.csがあります。SQLクエリの結果をループしようとしています。問題が発生し、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。データにアクセスしてフォームのリストボックスに挿入しようとするとエラーが発生します。
編集:SQLクエリは正常に完了し、Console.WriteLineは正しいデータで出力ウィンドウに正しく出力されています。
static void LoadServers()
{
DeployerConsole DC = (DeployerConsole)Application.OpenForms["DeployerConsole"];
//DeployerConsole DC = new DeployerConsole();
SqlConnection myConnection = new SqlConnection("server=XXX; database=XXX; uid=XXX; pwd=XXX;Integrated Security=true;Connection Lifetime=5;Trusted_Connection=yes;");
myConnection.Open();
DataSet ds = new DataSet();
SqlCommand myCommand = new SqlCommand("SELECT ServerName FROM DeployServers", myConnection);
SqlDataAdapter adapter = new SqlDataAdapter(myCommand);
adapter.Fill(ds);
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
DC.listBox1.Items.Add(dr["ServerName"].ToString());
Console.WriteLine(dr["ServerName"].ToString());
}
}
編集:スクリーンショットを追加
誰かが私が間違っていることについて何か提案やガイダンスを提供しますか?
編集(回答):そうですね、コードをクラスからフォームに移動しました。今すぐlistBoxにアクセスするのに問題はありません。しかし、私はまだこれに対する解決策を知りたいです。