标题:C#连接ACCESS数据库,显示到dataGridView表格?
只看楼主
qcxabc
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2011-9-15
结帖率:0
已结贴  问题点数:20 回复次数:6 
C#连接ACCESS数据库,显示到dataGridView表格?
用C#写了一段程序,想把access数据库的数据显示到dataGridView表格中,下面是一段代码没有报错,就是dataGridView表格中不显示数据,不知道怎么回事?
public partial class CustomerEditor : Form
  {
  private OleDbConnection connection;
  public CustomerEditor()
  {
  InitializeComponent();
  }

   

  private void menuDataconnect_Click(object sender, EventArgs e)
  {
  Connect();
  }
  public void Connect()
  {
  if (DialogopenFile.ShowDialog(this) == DialogResult.OK)
  {
  try
  {
  string connectionString = string.Format(
  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};User ID=;Password=;", DialogopenFile.FileName);
   
  OleDbConnection newConnection = new OleDbConnection(connectionString);
  newConnection.Open();
  Connection = newConnection;


  }
  catch (Exception ex)
  {
  HandleException("A connection could not be made", ex);
  }
   
  }
  }

  private void HandleException(string p, Exception ex)
  {
  MessageBox.Show(this, string.Format("{0}\n{1}:{2}", p, ex.GetType().ToString(), ex.Message));
  }
  public OleDbConnection Connection
  {
  get
  {
  return connection;

  }
  set
  {
  disconnection();
  connection = value;
  }

  }
  public void disconnection()
  {
  if (connection != null)
  {
  if (connection.State != ConnectionState.Closed)
  connection.Close();
  connection = null;
  }
  }
  protected void Dispos(bool disposing1)
  {
  disconnection();
  if (disposing1)
  {
  if (components != null)
  {
  components.Dispose();
  }
  }
  base.Dispose(disposing1);
  }

  private void menuDataload_Click(object sender, EventArgs e)
  {
  LoadData();
  }

  public void LoadData()
  {
  if (connection == null)
  {
  MessageBox.Show(this, "you must connect to a database");
  return;

  }

  OleDbCommand command = connection.CreateCommand();
  OleDbDataAdapter adapter = new OleDbDataAdapter(command);
  try
  {
   
   = "Customers";
   = CommandType.TableDirect;
   
  DataSet dataset = new DataSet();
  adapter.Fill(dataset);
  dataGridCustomers.DataSource = dataset;
   
  }
  catch (Exception ex)
  {
  HandleException("the data could not be loaded", ex);

  }
  finally
  {
  if (adapter != null)
  adapter.Dispose();
  if (command != null)
  command.Dispose();
  }

  }
  }
}
搜索更多相关主题的帖子: 数据库 private 数据显示 access 
2011-09-15 09:31
qcxabc
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2011-9-15
得分:0 
主要是调试的也没发现什么问题,就是不显示数据。不知道怎么回事?
2011-09-15 09:32
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:5 
程序代码:
  OleDbCommand command = connection.CreateCommand();
  OleDbDataAdapter adapter = new OleDbDataAdapter(connection,command);  //不懂你写的,好像少了连接,只有语句
  try 
  {
   
   = "Customers";
   = CommandType.TableDirect;  //首先连接语句不对,而且这两句应该在命令执行的前面,但和你前面写的不一样   
  DataSet dataset = new DataSet();
  adapter.Fill(dataset);
  dataGridCustomers.DataSource = dataset; //=dataset.Table[0].Defaultview,应该这样填充的
   
程序代码:
//给个示例
            int k = this.cbCountry.SelectedIndex;

            SqlConnection con = new SqlConnection();
            con.ConnectionString = @"Server = PC--20110803JXD\SQLEXPRESS;Database = Dsdv;User ID=sa;Password='wfl137632'";
            con.Open();

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;

            //string cdstr = this.ctcdlist[k].ToString();
            //string ctcd = cdstr.Substring(4, 2);
            //this.tbZhtCd.Text = this.tbZhtCd.Text.Substring(0, 4) + ctcd;

            this.cbTown.Items.Clear();
            this.twcdlist.Clear();

             = "SELECT dsdvsn,dsdvcd FROM dsdv WHERE dsdvcd LIKE '" + this.tbZhtCd.Text + "___000000'";

            SqlDataReader dr = cmd.ExecuteReader();  //这里

            bool ok = false;

            while (dr.Read())
            {
                if (ok)
                {
                    this.cbTown.Items.Add(dr[0]);
                    this.twcdlist.Add(dr[1]);                
                }
                ok = true;
            }

            dr.Close();
            con.Close();


[ 本帖最后由 qq1023569223 于 2011-9-15 18:20 编辑 ]

   唯实惟新 至诚致志
2011-09-15 18:15
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:0 
你的程序很难看!

   唯实惟新 至诚致志
2011-09-15 18:21
刘杰明
Rank: 8Rank: 8
来 自:山东大学威海校区
等 级:蝙蝠侠
帖 子:155
专家分:872
注 册:2011-6-20
得分:5 
看的眼疼...

______________________________加油__!__!___!
2011-09-20 19:20
xj517639054
Rank: 1
来 自:湖南长沙
等 级:新手上路
帖 子:1
专家分:5
注 册:2011-8-26
得分:5 
本来一个简单的东西,被你搞的这么大一坨。
2011-09-20 22:19
yianyxl
Rank: 2
等 级:论坛游民
帖 子:7
专家分:12
注 册:2010-12-1
得分:5 
异常不比都捕获了吧
2011-09-21 15:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349952-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.305791 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved