到.accdb文件的简单C#连接
本文关键字:连接 简单 accdb 文件 | 更新日期: 2023-09-27 18:21:36
我只想从.accdb文件中的表中检索数据。
这是我的完整申请:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection myConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Microland.accdb;Persist Security Info=False;");
myConn.Open();
OleDbCommand myQuery = new OleDbCommand("select CustID from Customers WHERE CustID = 1;", myConn);
OleDbDataReader myReader = myQuery.ExecuteReader();
if(myReader.HasRows)
{
myReader.Read();
label1.Text = myReader.ToString();
}
myConn.Close();
}
}
}
我想我在最上面缺少了一些用法,或者我的代码有点坏了,因为当我单击按钮1时,标签1文本将更改为System.Data.OleDb.OleDbDataReader.
此外,这是连接到访问数据库(.accdb)的正确方式吗?我是否需要进行此演练才能使其工作,或者这与我需要做的无关?
感谢提供任何信息!非常感谢
当您调用myReader.ToString()
时,它会返回一个表示当前对象的字符串。所以"System.Data.OleDb.OleDbDataReader"就是这样。
似乎您希望标签与读取的数据相等。我对这位读者并不特别熟悉,但请参阅此处获取文档。
您需要调用其中一个Get*()
函数。
label1.Text = myReader["CustID"] as string; // if nullable field
或
label1.Text = (string)myReader["CustID"] // if not null