首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于SelectCommand.Connection 属性尚未初始化的有关问题

2012-07-31 
关于SelectCommand.Connection 属性尚未初始化的问题我想把datagridview里的数据存储在access里面,编了一

关于SelectCommand.Connection 属性尚未初始化的问题
我想把datagridview里的数据存储在access里面,编了一段程序,但是出现SelectCommand.Connection 属性尚未初始化的错误提示,请问我应该还加什么命令,加在哪里
OleDbConnection oleCon;
OleDbDataAdapter oleDa;

 //刷新dataGridView1数据显示
  void DataRefresh()
  {
  oleCon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=pinch.mdb" );
  oleDa = new OleDbDataAdapter("Select * From [数据]", oleCon);
  DataSet ds = new DataSet();
  oleDa.Fill(ds);
  dataGridView1.DataSource = ds.Tables[0].DefaultView;

  }
  //将dataGridView1数据操作更新到数据库
  private Boolean dbUpdate()
  {
  string strOdb = "Select * From [数据]";
  DataTable dtUpdate = new DataTable();
  oleDa = new OleDbDataAdapter(strOdb, oleCon);
  oleDa.Fill(dtUpdate);
  dtUpdate.Rows.Clear();
  DataTable dtShow = new DataTable();
  dtShow = (DataTable)dataGridView1.DataSource;
  for (int i = 0; i < dtShow.Rows.Count; i++)
  {
  dtUpdate.ImportRow(dtShow.Rows[i]);
  }
  try
  {
  this.oleCon.Open();
  OleDbCommandBuilder CommandBuilder;
  CommandBuilder = new OleDbCommandBuilder(oleDa);
  oleDa.Update(dtUpdate);
  oleCon.Close();
  }
  catch (Exception ex)
  {
  MessageBox.Show("数据库操作失败: " + ex.Message.ToString(), "提示",
  MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  return false;
  }
  dtUpdate.AcceptChanges();
  return true;
  }
  //保存数据操作到数据库
  private void button3_Click(object sender, EventArgs e)
  {
  if (button3.Text == "完成")
  {
  if (dbUpdate())
  {
  MessageBox.Show("完成");
  }
  button3.Text = "编辑";
  }
  else
  {
  DataRefresh();
  button3.Text = "完成";
  }
  }

[解决办法]
oleCon.Open()没看到
[解决办法]

给个Access数据库操作类你

C# code
 //属性:数据库链接对象        private static OleDbConnection conn;        public static OleDbConnection Conn        {            get            {                try                {                    string connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + "" + Application.StartupPath + @"\Database.mdb";                    if (conn == null)                        conn = new OleDbConnection(connstr);                    if (conn.State == ConnectionState.Closed)                        conn.Open();                    if (conn.State == ConnectionState.Broken)                    {                        conn.Close();                        conn.Open();                    }                    return conn;                }                catch (Exception ex)                {                    throw;                }            }        }        //方法:查询,DataReader        public static OleDbDataReader GetReader(string SqlStr)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            return cmd.ExecuteReader();        }        public static OleDbDataReader GetReader(string SqlStr, OleDbParameter[] paras)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            cmd.Parameters.AddRange(paras);            return cmd.ExecuteReader();        }        //查询:DataTable        public static DataTable GetTable(string SqlStr)        {            try            {                OleDbDataAdapter dap = new OleDbDataAdapter(SqlStr, Conn);                DataSet ds = new DataSet();                dap.Fill(ds);                conn.Close();                return ds.Tables[0];            }            catch (Exception ex)            {                throw;            }        }        //增删改        public static bool Execute(string SqlStr)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            int result = cmd.ExecuteNonQuery();            conn.Close();            return result > 0;        } 

热点排行