【发布时间】:2012-01-15 10:06:24
【问题描述】:
我有表登录
id
name(nchar 30)
password(nchar 30)
catagory(nchar 10)
和一个 winForm 登录,它有一个组合框(名称)和一个文本框(密码),我在组合框的 SelectedIndex 更改上有以下代码
SqlConnection test = new SqlConnection();
test.ConnectionString = "Data Source=snipper;Initial Catalog=LoginData;Integrated Security=True;Pooling=False";
String QueryString = "SELECT Id, name, password, catagory FROM Login WHERE (Id = "+IdComboBox.SelectedValue +")";
SqlDataAdapter sqlad = new SqlDataAdapter(QueryString,test);
test.Open();
DataSet abc = new DataSet();
sqlad.Fill(abc);
test.Close();
IdComboBox.SelectedValue = abc.Tables[0].Rows[0]["Id"];
PasswordBox.Text = abc.Tables[0].Rows[0]["password"].ToString();
它运行但问题是当我更改组合框值时它第一次更改密码但下一次显示另一条记录的错误密码有什么问题?
【问题讨论】:
-
一开始不需要test.Open();和 test.Close();在使用 SqlDataAdapter.Fill() 方法时,如果更改 ComboBox 的值,这意味着更改文本,它不会调用 SelectedIndexChanged 事件。您是否为 IdComboBox 分配了数据源?
-
请添加用于填充 IdComboBox 组合框的代码。
-
我通过数据绑定(从属性)添加数据源 this.LoginTableAdapter.Fill(this.loginDataDataSet.Login);
-
删除 passordBox.Text 代码后,它运行良好,但抛出此异常 Incorrect syntax near ')'。
标签: c# sql-server winforms combobox