C#读写Accsess示例一

连接Accsess数据库 >> 函数代码

OleDbConnection conn = null; //连接数据库字符串,更改为全局变量        
        public OleDbConnection GetConnection()   // 1、创建数据库连接  
        {
            string str = "Provider=Microsoft.Jet.Oledb.4.0;";
            str += @"Data Source=D:\CHManager\SUNFULCESS.mdb"; //连接字符串
            try
            {
                conn = new OleDbConnection(str);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return conn;
        }

显示代码  >>

private void DataDisplay()  ////2、将数据库中的内容在datagridview中显示
        { 
            string sql = "select * from Partner order by [ID]";
            OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);  //实例化DataAdapter
           
            DataSet ds = new DataSet();    //DataSet表示数据在内存中的缓存
            da.Fill(ds,"Partner");  //用da中的表“Partner”去填充空白的ds
            DataTable dt=ds.Tables["Partner"]; 
            dataGridView1.DataSource = dt;
            //改列名称,调整列位置,填充列内容
            dataGridView1.Columns[1].HeaderText = "客户编号";  //改变列名
            dataGridView1.Columns[2].HeaderText = "姓 名";     //改变列名
            dataGridView1.Columns[3].HeaderText = "地 址";        //改变列名
            dataGridView1.Columns[5].HeaderText = "座 机";        //改变列名
            dataGridView1.Columns[3].DataPropertyName = ds.Tables["Partner"].Columns[5].ToString();
            dataGridView1.Columns[5].DataPropertyName = ds.Tables["Partner"].Columns[3].ToString();
        
        }

点击连接显示按钮>>

//连接数据库            
            conn = GetConnection();
            conn.Open();
            try
            {
                DataDisplay();  //将数据库中的内容在datagridview中显示            
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                conn.Close();
            }

显示效果:

======================================== 插入一行数据 >> 保存至数据库并刷新 ===================================================

conn.Open();  //此行解决 “ExecuteReader 要求已打开且可用的连接。连接的当前状态为已关闭。”问题
            try
            {
                //插入数据库新行代码
                string sqlStr = "insert into Partner(PartnerID,[PartnerName]) values(@PartnerID,@PartnerName)";
                OleDbCommand com = new OleDbCommand(sqlStr, conn);
                com.Parameters.AddWithValue("@PartnerID", tbxID.Text);  //PartnerID唯一,后期加验证代码段
                com.Parameters.AddWithValue("@PartnerName", tbxName.Text);
                com.ExecuteNonQuery();
                DataDisplay();  //刷新dataGridView视图数据
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                conn.Close();
            }
           

效果图:

============================ 删除行 代码段 ======================================================

 

public bool DataDelete(DataGridView dataGridView1, OleDbConnection conn)    //实现删除 
        {
            bool result = false;
            DialogResult dr = MessageBox.Show("确定要删除这条记录吗","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
            if(dr==DialogResult.Yes)
            {   
                int iCount = dataGridView1.SelectedRows.Count; //获取当前datagridview选中的行数
                // Int32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected); //获取当前datagridview选中的行数 方法二
                conn.Open();        
                if (iCount < 1)
                {
                    MessageBox.Show("删除失败!");
                }
                else
                {
                    for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--)
                    {
                        if (dataGridView1.Rows[i].Selected)
                        {   //执行删除数据库代码
                            string sqlDel = "delete * from Partner where [PartnerID]=@PartnerID";
                            OleDbCommand comd = new OleDbCommand(sqlDel,conn);
                            comd.Parameters.AddWithValue("@PartnerID",dataGridView1.Rows[i].Cells[1].Value);
                            int rtnCode = comd.ExecuteNonQuery();
                        }
                    }
                    
                }
                result = true;
            }
            return result;
        }

删除效果图:

 

============================== 实现编辑功能 =====================================================

 

posted @ 2019-05-31 23:55  ChinaHunter  阅读(403)  评论(0编辑  收藏  举报