0
두 개의 목록 상자가 있으며 해당 데이터가 SQL Server에 저장됩니다. SQL Server에서 ListBox1의 데이터를로드 할 수 있습니다. 그러나 ListBox 1에서 ListBox 2에 선택한 항목의 해당 데이터를 채울 수 없습니다. 목록 상자 1의 항목을 클릭하면 Listbox2에 데이터가 표시되지 않습니다.목록 상자의 항목 선택
private void Form2_Load(object sender, EventArgs e)
{
SqlConnection cs = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=details;User ID=sa;[email protected]");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cs;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT memo FROM new";
DataSet objDS = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
// cs.Open();
da.Fill(objDS);
//cs.Close();
listMemo.ValueMember = "memo";
listMemo.DisplayMember = "memo";
listMemo.DataSource = objDS.Tables[0];
}
private void listMemo_SelectedIndexChanged(object sender, EventArgs e)
{
// string memo = Convert.ToInt32(listMemo.SelectedValue.ToString());
if (listMemo.SelectedValue.ToString() != "")
{
string memo = Convert.ToString(listMemo.SelectedValue.ToString());
filltext(memo);
}
}
private void filltext(string memo)
{
SqlConnection cs = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=details;User ID=sa;[email protected]");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cs;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT text FROM new WHERE memo = '"+ listMemo.SelectedValue.ToString() +"'" ;
//cmd.Parameters.AddWithValue("@memo", listMemo);
DataSet objDS = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
// cs.Open();
da.Fill(objDS);
// cs.Close();
if (objDS.Tables[0].Rows.Count >0)
{
listText.ValueMember = "text";
listText.DisplayMember = "text";
listText.DataSource = objDS.Tables[0];
}
}
사이드 노트 : SqlConnection 개체를 삭제해야합니다. –
'filltext'에서'memo' 인자를 사용하고 있지 않습니다. 대신에, 당신은'listMemo'에서 문자열을 다시 얻고 있습니다. –
또한 SQL 쿼리가 결과를 반환한다고 독자적으로 확인 했습니까? –