データベースからデータを取得し、2 つのコンボ ボックスを提供するフォームの作成に取り組んでいます。ComboBox1 には、従業員の名前が「姓名」形式で表示されます。ComboBox2 は、従業員名を「姓、名」形式で表示します。名前は問題なくコンボ ボックスに取り込まれています。
私が方法を理解しようとしているのは、ユーザーがドロップダウンボックスのいずれかから名前を選択すると、クエリからの他の情報に基づいて、textBox1、textBox2 などの特定のテキストボックスに入力されることです。
私は使用しようとしました
textBox1.Text = comboBox1.SelectedItem;
ただし、次のようなエラーが表示されます: タイプ 'オブジェクト' を '文字列' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)
これが私の現在のコードです。データベースへの接続クエリなどは意図的に省略しました。
public partial class Employees : Form
{
public Employees()
{
InitializeComponent();
//Connect to database for Employees Table Headers
SqlConnection myConnection = new SqlConnection(@"Server=Server...");
try {
myConnection.Open();
string SqlDataPull = String.Format("SELECT * FROM Employees WHERE Lname IS NOT NULL {0} ORDER By Lname", (checkBox1.Checked ? "AND Active='Y'" : ""));
SqlCommand cmd = new SqlCommand(SqlDataPull, myConnection);
cmd.CommandType = CommandType.Text;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read()) {
string strEmployee = String.Format("{0} {1}", dr["Fname"], dr["Lname"]);
comboBox1.Items.Add(strEmployee);
textBox1.Text = comboBox1.SelectedItem;
string strEmployee2 = String.Format("{0}, {1}", dr["Lname"], dr["Fname"]);
comboBox2.Items.Add(strEmployee2);
}
} catch (Exception e) {
MessageBox.Show(e.ToString());
} finally {
if (myConnection != null) {
myConnection.Dispose();
}
}
}
private void button1_Click(object sender, EventArgs e)
{
Main myNewForm = new Main();
myNewForm.Show();
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
Reports myNewForm = new Reports();
myNewForm.Show();
this.Close();
}
}