2015-09-26 77 views
0
public partial class Form1 : Form 
{ 
    OleDbCommand cmd = new OleDbCommand(); 
    OleDbConnection cn = new OleDbConnection(); 
    OleDbDataReader dr; 
    public Form1() 
    { 
     InitializeComponent(); 

    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\AsusK450c\documents\visual studio 2010\Projects\ADD\ADD\testing.accdb;Persist Security Info=True"; 
     cmd.Connection = cn; 
     loaddata(); 

    } 
    private void loaddata() 
    { 
     listBox1.Items.Clear(); 
     listBox2.Items.Clear(); 
     try 
     { 
      string q = "select * from info"; 
      cmd.CommandText = q; 
      cn.Open(); 
      dr = cmd.ExecuteReader(); 
      if (dr.HasRows) 
      { 
       while (dr.Read()) 
       { 
        listBox1.Items.Add(dr[0].ToString()); 
        listBox2.Items.Add(dr[1].ToString()); 
       } 
      } 
      dr.Close(); 
      cn.Close(); 

     } 
     catch (Exception e) 
     { 
      cn.Close(); 
      MessageBox.Show(e.Message.ToString()); 
     } 
    } 
} 

這是數據庫的一個圖像: enter image description hereC#加載數據到列表框

enter image description here

我加入2-列表框。這兩個應該顯示我放入數據庫的數據,但它沒有。我不知道哪個是錯誤的,路徑,代碼或數據庫

+0

你面臨什麼問題? –

+0

我添加了2個列表框。這兩個應該顯示我放入數據庫的數據,但它不是 – user5207499

+0

你會得到一個異常? –

回答

1

你的代碼沒有問題。檢查您是否收到任何異常或指向正確的數據庫。

另外檢查是否已分配的功能Form1_Load的()形成的Load事件

enter image description here

+0

它的工作,謝謝 – user5207499

0

我不知道你的問題是什麼,但你可以改變通過這種方式的connectionString:

System.Data.OleDb.OleDbConnectionStringBuilder builder = new System.Data.OleDb.OleDbConnectionStringBuilder(); 
      builder.Provider = "Microsoft.ACE.OLEDB.12.0"; 
      builder.OleDbServices = -1; 
      builder.DataSource = @"C:\Users\AsusK450c\documents\visual studio 2010\Projects\ADD\ADD\testing.accdb"; 
      cn.ConnectionString = builder.ConnectionString; 

OleDbServices = -1可以幫到你。