C# 查询 MS-Access Table 并将从列中读取的值放在文本框中
C# Query MS-Access Table and place read values from column in a text box
下面是我的代码的快照。我正在尝试访问客户 table 中唯一的列,并将值放入表单的文本框中。在将 dr
声明为 OleDbDataReader
对象的行中,我的代码 "InvalidOperationException was unhandled"
不断出现错误。
下面的代码有什么问题会给我这个错误?
我应该做一个列表来从数据库中挑选出我想要的文本吗?
如何 return 在 C# 中访问列表中的列值,以便我可以在列表中搜索特定值?
string strsql = "Select * from Customer";
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = strsql;
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
textBox1.Text += dr["Customer"].ToString();
}
conn.Close();
命令携带要执行的信息,连接携带到达数据库服务器的信息。这两个对象应该链接在一起以产生任何结果。你错过了那条线
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = strsql;
cmd.Connection = conn; // <= here
conn.Open();
还请记住 disposable 对象,如命令、reader 和连接应在使用后立即 disposed。对于此模式,存在 using 语句
所以你应该写
string cmdText = "Select * from Customer";
using(OleDbConnection conn = new OleDbConnection(.....constring...))
using(OleDbCommand cmd = new OleDbCommand(cmdText, conn))
{
conn.Open();
using(OleDbDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
.....
}
}
这是一些示例代码。
try
{
using (OleDbConnection myConnection = new OleDbConnection())//make use of the using statement
{
myConnection.ConnectionString = myConnectionString;
myConnection.Open();//Open your connection
OleDbCommand cmdNotReturned = myConnection.CreateCommand();//Create a command
cmdNotReturned.CommandText = "someQuery";
OleDbDataReader readerNotReturned = cmdNotReturned.ExecuteReader(CommandBehavior.CloseConnection);
// close conn after complete
// Load the result into a DataTable
if (readerNotReturned != null) someDataTable.Load(readerNotReturned);
}
}
之后,您将拥有一个包含您的数据的数据表。当然,您之后可以按照自己喜欢的方式在数据表中搜索记录。
下面是我的代码的快照。我正在尝试访问客户 table 中唯一的列,并将值放入表单的文本框中。在将 dr
声明为 OleDbDataReader
对象的行中,我的代码 "InvalidOperationException was unhandled"
不断出现错误。
下面的代码有什么问题会给我这个错误?
我应该做一个列表来从数据库中挑选出我想要的文本吗?
如何 return 在 C# 中访问列表中的列值,以便我可以在列表中搜索特定值?
string strsql = "Select * from Customer"; OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = strsql; conn.Open(); OleDbDataReader dr = cmd.ExecuteReader(); while(dr.Read()) { textBox1.Text += dr["Customer"].ToString(); } conn.Close();
命令携带要执行的信息,连接携带到达数据库服务器的信息。这两个对象应该链接在一起以产生任何结果。你错过了那条线
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = strsql;
cmd.Connection = conn; // <= here
conn.Open();
还请记住 disposable 对象,如命令、reader 和连接应在使用后立即 disposed。对于此模式,存在 using 语句
所以你应该写
string cmdText = "Select * from Customer";
using(OleDbConnection conn = new OleDbConnection(.....constring...))
using(OleDbCommand cmd = new OleDbCommand(cmdText, conn))
{
conn.Open();
using(OleDbDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
.....
}
}
这是一些示例代码。
try
{
using (OleDbConnection myConnection = new OleDbConnection())//make use of the using statement
{
myConnection.ConnectionString = myConnectionString;
myConnection.Open();//Open your connection
OleDbCommand cmdNotReturned = myConnection.CreateCommand();//Create a command
cmdNotReturned.CommandText = "someQuery";
OleDbDataReader readerNotReturned = cmdNotReturned.ExecuteReader(CommandBehavior.CloseConnection);
// close conn after complete
// Load the result into a DataTable
if (readerNotReturned != null) someDataTable.Load(readerNotReturned);
}
}
之后,您将拥有一个包含您的数据的数据表。当然,您之后可以按照自己喜欢的方式在数据表中搜索记录。