在文本框中显示数据库值

时间:2015-09-01 12:41:58

标签: c# database combobox datatable

我有一个包含2列的数据表IDName,我已使用列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"我确信代码是正确的。

1 个答案:

答案 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提供程序的确切语法,但希望这会有所帮助。