在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]);
}
}
答案 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;
}