2013-03-01 80 views
5

Tôi có các mã bên dưới ở đây để hiển thị dữ liệu trong datagridview từ cơ sở dữ liệu truy cập. Tôi có các hàng khác nhau nhưng chỉ hiển thị hàng cuối cùng của dữ liệu trong cơ sở dữ liệu. Tôi không biết có gì sai trong mã của tôi.Cách hiển thị dữ liệu trong datagridview từ cơ sở dữ liệu truy cập

dataGridView1.Columns.Add("UserID", "UserID"); 
    dataGridView1.Columns.Add("FirstName", "FirstName"); 
    dataGridView1.Columns.Add("MI", "MI"); 
    dataGridView1.Columns.Add("LastName", "LastName"); 
    dataGridView1.Columns.Add("Birthdate", "Birthdate"); 
    dataGridView1.Columns.Add("Address", "Address"); 
    dataGridView1.Columns.Add("UserName", "UserName"); 
    dataGridView1.Columns.Add("UserPassword", "UserPassword"); 
    dataGridView1.Columns.Add("Rights", "Rights"); 


    OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\SISC-STRONGHOLD\MIS!\wilbert.beltran\SEEDBucksDbase.accdb"); 
    conn.Open(); 
    OleDbCommand cmd = new OleDbCommand(); 
    cmd.Connection = conn; 
    cmd.CommandText = "SELECT * From TableAcct"; 
    OleDbDataReader reader = cmd.ExecuteReader(); 
    while (reader.Read()) 
    { 
     dataGridView1.Rows.Add(); 

     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["UserID"].Value = reader[0].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["FirstName"].Value = reader[1].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["MI"].Value = reader[2].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["LastName"].Value = reader[3].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Birthdate"].Value = reader[4].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Address"].Value = reader[5].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["UserName"].Value = reader[7].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["UserPassword"].Value = reader[8].ToString(); 
     dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells["Rights"].Value = reader[9].ToString(); 
    } 
    conn.Close(); 
} 
+0

@JohnSaunders - Tôi xin lỗi nhưng Im chỉ là một người mới bắt đầu trong C#. Các mã hoạt động nhưng nó chỉ hiển thị hàng cuối cùng của dữ liệu trong bảng của tôi nhưng nó sẽ hiển thị tất cả các hàng trong bảng. – bhert

Trả lời

6

Bạn có thể liên kết trực tiếp dataGridView1 sử dụng OleDbDataAdapter. Hãy chắc chắn rằng tên của các cột trong datagridview phù hợp với tên trường trả về bởi truy vấn sao cho nó sẽ chứa các cột trống và tạo một cột khác cho mọi trường.

string connStr = @"Provider=Microsoft.ACE.OLEDB.12.0; 
     Data Source=\\SISC-STRONGHOLD\MIS!\wilbert.beltran\SEEDBucksDbase.accdb"; 
string query = "SELECT * From TableAcct"; 
using(OleDbConnection conn = new OleDbConnection(connStr)) 
{ 
    using(OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn)) 
    { 
     DataSet ds = new DataSet(); 
     adapter.Fill(ds); 
     DataGridView1.DataSource= ds.Tables[0]; 
    } 
} 
+1

trong dòng "adapter.Fill (ds [0]);" lỗi nói "Không thể áp dụng lập chỉ mục với [] vào biểu thức loại 'System.Data.Dataset'". Cảm ơn :) – bhert

+0

oh đó là một lỗi đánh máy, nó chỉ nên là 'adapter.Fill (ds);'. –

+1

Cảm ơn rất nhiều. Nó hoạt động hoàn hảo :) Cảm ơn bạn. Đó là một đoạn mã ngắn và nó hoàn hảo :) cảm ơn bạn! – bhert

0

Vui lòng sử dụng mã này để hiển thị dữ liệu của bạn để datagridview trong C# .net

OleDBConnection con=new  OleDBConnection("Copy your database database path and paste it"); 
    con.open(); 
    Dataset ds=new Dataset(); 
     OleDBDataAdapter sdr=new  OleDBDataAdapter("select * from table_name",con); 
    sdr.Fill(ds); 
    datagridview1.Datasource=ds.tables[0]; 
    con.close(); 
0
public partial class WebForm1 : System.Web.UI.Page 
{ 
    public String name,type,rvw; 


    public void Page_Load(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Uz!\Documents\Data_Ware.mdf;Integrated Security=True;Connect Timeout=30"); 
     SqlDataAdapter sda = new SqlDataAdapter("Select * From CoffeeDB ", con); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 

     GridView.DataSource = dt; 
    } 
} 
+0

Bạn có muốn viết một số lời giải thích cho mã được cung cấp không. Cảm ơn – Anton

Các vấn đề liên quan