我有一个包含2列的数据表ID
和Name
,我已使用列ID填充了我的组合框。
string Query = "SELECT * FROM [Database]";
OleDbConnection me = new OleDbConnection(connection);
OleDbCommand constr = new OleDbCommand(Query, me);
me.Open();
OleDbDataReader reader = constr.ExecuteReader();
while(reader.Read())
{
textBox15.Text = (reader["Name"].ToString());
}
reader.Close();
当我从组合框中选择一个项目时,我想从同一行的列Name
中检索值。例如,我从我的组合框中选择一个值,该值在datarow 1中,它与表Name
中的数据行1匹配
有没有这样做?
我目前在这里
{
string Query = "SELECT * FROM [Database] where Name ='" + comboBox6.Text + "' "; string y = textBox15.Text
OleDbConnection me = new OleDbConnection(connection);
OleDbCommand constr = new OleDbCommand(Query, me);
me.Open();
OleDbDataReader reader = constr.ExecuteReader();
constr.Parameters.Add(new OleDbParameter("@Name", y));
while (reader.Read())
{
textBox15.Text = reader["Name"].ToString();
}
me.Close();
}
}
我仍然收到错误"No parameters given for one or more values"
我确信代码是正确的。
答案 0 :(得分:0)
您需要在SQL查询中添加参数。例如:
string myName = myComboBox.SelectedItem.Text;
string Query = "SELECT * FROM [Database] WHERE Name = ?";
OleDbConnection conn = new OleDbConnection(connection);
OleDbCommand cmd = new OleDbCommand(Query, conn);
cmd.Parameters.Add(new OleDbParameter("@name", myName));
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
while(reader.Read())
etc...
我不确定OLE DB .NET提供程序的确切语法,但希望这会有所帮助。