使用c#连接和读取. mdb项目
本文关键字:mdb 项目 读取 连接 使用 | 更新日期: 2023-09-27 18:16:35
是否可以连接到本地MDB文件并从中选择单个信息?我在.mbd文件中有一个表,其中包含单个信息。我想有记录被输出到一个禁用的文本框供参考。我相信我可以得到DB打开,并运行查询,但不知道我需要从它读取什么。
感谢var myDataTable = new DataTable();
using (var conection = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + "data source=C:''menus''newmenus''menu.mdb;Password=****"))
{
conection.Open();
var query = "Select siteid From n_user";
var adapter = new OleDbDataAdapter(query, conection);
OleDbCommandBuilder oleDbCommandBuilder = new OleDbCommandBuilder(adapter);
}
要简单地读取数据库表上的单个字段,可以使用OleDbDataReader,它可以循环遍历结果并返回所需的字段。
var myDataTable = new DataTable();
using (var conection = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + "data source=C:''menus''newmenus''menu.mdb;Password=****"))
{
conection.Open();
var query = "Select siteid From n_user";
var command = new OleDbCommand(query, conection);
var reader = command.ExecuteReader();
while(reader.Read())
textBox1.Text = reader[0].ToString();
}
如果您只有一条记录和一个字段,那么更好的解决方案是方法ExecuteScalar
conection.Open();
// A query that returns just one record composed of just one field
var query = "Select siteid From n_user where userid=1";
var command = new OleDbCommand(query, conection);
int result = (int)command.ExecuteScalar(); // Supposing that siteid is an integer
可能我还应该提到,如果查询没有找到userid的匹配,则ExecuteScalar返回null,因此最好小心这里的转换
object result = command.ExecuteScalar();
if( result != null)
int userID = (int)result;
.....
很有可能。只要用适配器填充DataTable
,我认为你也不需要OleDbCommandBuilder
。
using (var conection = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + "data source=C:''menus''newmenus''menu.mdb;Password=****"))
{
conection.Open();
var query = "Select siteid From n_user";
var adapter = new OleDbDataAdapter(query, conection);
adapter.Fill(myDataTable);
myTextBox.Text = myDataTable.Rows[0][0].ToString();
}
我也认为使用ExecuteScalar
将是一个更好的解决方案,但我的答案是量身定制的对象,你已经实例化。
您可以使用OleDbCommand。用于检索单个值。它作为对象返回,您可以将其强制转换为正确的类型。
你在找这样的stm吗?
<>之前OleDbCommand cmd = new OleDbCommand();OleDbDataReader dr = cmd.ExecuteReader();而(dr.Read ()){//在这里读你的东西。}