如何使用 C# 从文本框中的访问数据库中获取数据
Posted
技术标签:
【中文标题】如何使用 C# 从文本框中的访问数据库中获取数据【英文标题】:How to fetch data from access database in a textBox using C# 【发布时间】:2013-11-29 18:18:22 【问题描述】:我有一个数据库,我在其中创建了一个表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
选择主键
【问题讨论】:
【参考方案1】:您似乎正在尝试重用已打开的数据库连接。
您可以在尝试打开之前尝试测试连接状态:
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();
或者,您可以在每次需要执行新命令时创建一个新连接。
【讨论】:
它给出一个错误“多步 OLE DB 操作产生错误。检查每个 OLE DB 状态值,如果可用。没有完成任何工作。” @Dany 在您的问题中,您说表名是HUGGO_BOSS
,但在SQL 代码中您查询的是表HUGO_BOSS
(只有一个G
)。您确定 SQL 查询正确吗?还有,comboBox3.SelectedItem
是什么类型的?
对不起,实际上有一个输入错误。正确的拼写是HUGO_BOSS,我的combobox3包含数据库中的品牌名称列表。如果用户选择了一个特定的品牌名称,那么我的文本框应该给出它在库存中的可用数量。
@Dany 如果SelectedItem
是一个字符串,您确定[Brand Name]
在varchar
或nvarchar
(或char
/ nchar
)中吗?另外,您是否在连接字符串中指定了数据库名称?
是的,我在连接字符串中指定了数据库名称。我的品牌名称是文字。其实我正在使用 ms 访问数据库。以上是关于如何使用 C# 从文本框中的访问数据库中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 C# ASP.net 从 SQL Server 中的文本框中存储日期
C#中怎样从一个form的文本框获取另一个form中Comobox控件的值