繁体   English   中英

如何使用C#从TextBox中的Access数据库中获取数据

[英]How to fetch data from access database in a textBox using C#

我有一个数据库,在其中创建了一个表HUGO_BOSS 其列为[brand name][stock quantity][retail price] ,其入门代码为[Brand name] 我想用数据库中存在的库存数量值填充Windows窗体中的文本框。 我尝试了以下代码,但它给出了运行时错误

连接未关闭,连接状态为打开。

if (comboBox2.Text == "HUGO BOSS")
{
    try
    {
        OleDbCommand cmd = con.CreateCommand();
        cmd.CommandText = "Select [Stock quantity] as stockquantity from HUGO_BOSS WHERE [Brand name]=@name";
        cmd.Parameters.AddWithValue("@name", comboBox3.SelectedItem);
        con.Open();
        OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult);
        if (dr.Read())
        {
            textBox7.Text = dr["stockquantity"].ToString();
        }
    }
    finally { con.Close(); }
}

还有一件事,在这里我将通过使用combobox3选择主键

您似乎正在尝试重用已经打开的数据库连接。

您可以尝试在打开连接之前测试连接状态:

OleDbCommand cmd = con.CreateCommand();
cmd.CommandText = "Select [Stock quantity] as stockquantity from HUGO_BOSS WHERE [Brand name]=@name";
cmd.Parameters.AddWithValue("@name", comboBox3.SelectedItem);
if (con.State == ConnectionState.Closed)
{
    con.Open();
}
OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleResult);
if (dr.Read())
{
    textBox7.Text = dr["stockquantity"].ToString();
}

另外,您可以在每次需要执行新命令时创建一个新连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM