是否可以连接到本地MDB文件并从中选择一点信息?我在.mbd文件中有一个表,其中包含一点信息.我想将该记录输出到禁用的文本框中以供参考.我相信我可以打开数据库,运行查询但不知道我需要从中读取什么.
谢谢
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);
}
Run Code Online (Sandbox Code Playgroud)
要简单地读取数据库表上的单个字段,您可以使用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();
}
Run Code Online (Sandbox Code Playgroud)
如果你只有一个记录而只有一个字段,那么更好的解决方案是方法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
Run Code Online (Sandbox Code Playgroud)
可能我还应该提一下,如果查询没有找到userid的匹配项,ExecuteScalar会返回null,所以最好小心这里的转换
object result = command.ExecuteScalar();
if( result != null)
int userID = (int)result;
.....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20662 次 |
| 最近记录: |