2015-11-11 65 views
4

我想要做的就是從.accdb文件中的表中檢索數據。簡單的C#連接到.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(); 

     } 
    } 
} 

我覺得我缺少用在最高層或我的代碼在一定程度上打破becasue一些,然後我點擊Button1的該label1的文本變爲System.Data.OleDb .OleDbDataReader。

也是這種連接訪問數據庫(.accdb)的正確方法我需要做this walkthrough才能使其工作,或者這與我需要做什麼無關?

感謝您的任何信息!非常感謝

回答

3

當您致電myReader.ToString()時,它會返回一個表示當前對象的字符串。所以「System.Data.OleDb.OleDbDataReader」就是這樣。

您似乎希望標籤等於讀取的數據。我對這個閱讀器並不熟悉,但對於文檔refer here

您需要撥打其中一個Get*()函數。

0
label1.Text = myReader["CustID"] as string; // if nullable field 

或者

label1.Text = (string)myReader["CustID"] // if not null