来自数据库的C#listBox.SelectedIndex

时间:2013-05-18 17:26:17

标签: c# listbox selectedindex

在visual Studio 2010中(使用visual C#),我有一个表单,其中有一个listBox(名为listBox1)。用户选择listBox上显示的项目之一,然后单击“保存”按钮。应用程序使用以下命令将用户的选择保存到数据库中:

cmd.CommandText = "insert into Table2 (kat) values ('"+listBox1.SelectedIndex.ToString()+"')"

(编辑)例如,它们保存为0或1或2等...

然后我希望应用程序使用int在另一个listBox上选择相同的项目,使用完全相同的项目,但在另一个表单上。

到目前为止我所拥有的是:

cmd.CommandText = "select * from Table1 WHERE username='"+textBox1.Text+"'";
                                dr = cmd.ExecuteReader();
                                if (dr.HasRows)
                                {
                                    while (dr.Read())
                                    {
                                        form1.listBox1.SelectedIndex(dr[0]);
                                    }

                                }

1 个答案:

答案 0 :(得分:1)

您在数据库中插入值String,然后尝试以错误的方式添加Integer

正确插入值为整数

cmd.CommandText = "INSERT INTO Table1(kat) VALUES(@id)";
cmd.Parameters.AddWithValue("@id", listBox1.SelectedIndex);
cmd.ExecuteNonQuery();

要在其他表单上创建listBox的副本,您可以使用SELECT查询来执行此操作。

实施例

cmd.CommandText = "SELECT kat FROM Table1";

var reader = cmd.ExecuteReader();

while(reader.Read())
{
    otherListBox.Items.Add(reader[0]);
}
reader.Close();

要同步列表,请尝试此

int index = listBox1.FindStringExact("id to find");

if (index > -1)
{
    listBox1.SelectedIndex = index;
}