如何在访问数据库中显示datagridview中的数据
问题描述:
我在此处显示访问数据库中datagridview中的数据时使用的代码。我有不同的行,但只显示数据库中的最后一行数据。我不知道我的代码中有什么问题。如何在访问数据库中显示datagridview中的数据
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();
}
答
可以使用OleDbDataAdapter
直接绑定dataGridView1
。确保datagridview中列的名称与查询返回的字段名称匹配,以便它包含空白列并为每个字段创建另一列。
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];
}
}
答
请使用此代码,以显示你的数据对datagridview的在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();
答
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
你愿意写一些解释给提供的代码吗?谢谢 – Anton 2016-03-13 09:43:20
@JohnSaunders - 我很抱歉,但在C#中我只是一个初学者。代码工作,但它只显示我的表中的最后一行数据,但它应该显示表中的所有行。 – bhert 2013-03-01 02:41:05