C#_WinForm_实现增删改查等功能(数据库Access)

  • 格式:doc
  • 大小:62.00 KB
  • 文档页数:29

C#_WinForm_实现增删改查等功能(Access用dataGridView控件,显示 ResumeTest表中的数据用Access新建一个表MResume,人事管理表:ID 姓名性别出生日期工作年限证件类型证件号居住地 Email 手机号码家庭电话图片自我评价控件的使用:bindingNavigator(实现分页功能, dataGridView(显示数据在C# WinForm 中有这一个app.config的文件,这个文件的作用可以当作web程序中的webconfig文件。

这里面可以记录数据库连接字符串Access下数据库连接函数:public static OleDbConnection GetConnection({OleDbConnection conn = null;string strconnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "database\\chinabase.mdb;Persist Security Info=True";try{conn = new OleDbConnection(strconnectionString;}catch (Exception ex{throw ex;}return conn;把数据库中的数据读到dataGridView让这个控件来显示数据:private void ResumeTest_Load(object sender, EventArgs e{//手动代码把数据库中的数据显示出来OleDbConnection conn = GetConnection(;string sqlText = "select 姓名,性别,出生日期,工作年限,证件类型,证件号,居住地,Email,手机号码,家庭电话,自我评价 from MResume order by id asc";OleDbCommand cmd = new OleDbCommand(sqlText, conn;try{conn.Open(;//int i = cmd.ExecuteNonQuery(;DataTable dt = new DataTable(;OleDbDataAdapter oda = new OleDbDataAdapter(sqlText, conn;DataSet ds = new DataSet(;// oda.Fill(dt;// dataGridView1.DataSource = dt;oda.Fill(ds, "ds";dtInfo.Clear(;//dtInfo = null;dtInfo = ds.Tables[0];InitDataSet(dtInfo; //初始化数据}catch (Exception exMessageBox.Show(ex.ToString(;}finally{conn.Close(;}//设置GridView样式// SetUpDataGridView(;dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //使用户能够选择行from msdnthis.dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; //双击不能修改了,这是通过编程的方式来修改单元格内容的boxSelect.Items.Add("请选择类别";boxSelect.Items.Add("姓名";boxSelect.Items.Add("性别";boxSelect.SelectedText = "请选择类别";}增加一条记录模块设计与实现设计:点击增加按钮弹出一个窗体,在窗体的文本框中填充数据,点击保存按钮,当前添加数据窗体自动关闭,同时刷新主窗体,更新并显示数据。

实现:需要在增加按钮事件中传递一个主窗体的指针。

////// 增加//////private void 增加ToolStripMenuItem_Click(object sender, EventArgs e{ResumeAddOrUpdate resumeAdd = new ResumeAddOrUpdate(this; resumeAdd.SaveOrUpdate("Save"; //增加操作resumeAdd.Width = this.Width; //设置宽度,高度resumeAdd.Height = this.Height;resumeAdd.Top = this.Top;resumeAdd.Left = this.Left;resumeAdd.StartPosition = FormStartPosition.CenterScreen;resumeAdd.BackColor = Color.White;resumeAdd.Show(;}在ResumeAddOrUpdate中:private ResumeTest resumeTest; //定义一个父窗体////// 添加时的操作//////public ResumeAddOrUpdate(ResumeTest _resumeTest //这里需要从父窗体中传递一个this指针{InitializeComponent(;this.resumeTest = _resumeTest;}private void ResumeAdd_Load(object sender, EventArgs e{txtSelfCommand.Multiline = true; //设置成多行多列显示picPerson.SizeMode = PictureBoxSizeMode.StretchImage; //图片自适应picturebox大小// lblImage.Text = "0";//初始化是否更新图片,为空时不更新图片,不为空时则更新图片}////// 增加操作/////////private void btnSave_Click(object sender, EventArgs e{…………//手动代码保存数据至数据库OleDbConnection conn = GetConnection(;string sqlText = "insert into MResume(姓名,性别,出生日期,工作年限,证件类型,证件号,居住地,Email,手机号码,家庭电话,自我评价,图片values(@name,@sex,@datetimes,@years,@cardStyle,@cardNumber,@address,@email, @phoneNumber,@homeNumber,@selftCommand,@timeStamp";// OleDbTransaction transaction = null;OleDbCommand cmd = new OleDbCommand(sqlText, conn;//transaction = conn.BeginTransaction(;// cmd.Transaction = transaction;cmd.Parameters.AddWithValue("@name", name;cmd.Parameters.AddWithValue("@sex", sex;cmd.Parameters.AddWithValue("@datetimes", datetimes;cmd.Parameters.AddWithValue("@years", years;cmd.Parameters.AddWithValue("@cardStyle", cardStyle;cmd.Parameters.AddWithValue("@cardNumber", cardNumber;cmd.Parameters.AddWithValue("@address", address;cmd.Parameters.AddWithValue("@email", email;cmd.Parameters.AddWithValue("@phoneNumber", phoneNumber;cmd.Parameters.AddWithValue("@homeNumber", homeNumber;cmd.Parameters.AddWithValue("@selftCommand", selftCommand;//timeStamp cmd.Parameters.AddWithValue("@timeStamp", lblImage.Text;try{conn.Open(;int i = cmd.ExecuteNonQuery(;// mit(;if (i > 0{MessageBox.Show("添加成功!","提示";// this.resumeTest.Refresh(;this.resumeTest.RefreshDataGridView(sender,e;//刷新窗体this.Close(;}/*DataTable dt = new DataTable(;OleDbDataAdapter oda = new OleDbDataAdapter(sqlText, conn;oda.Fill(dt;dataGridView1.DataSource = dt;*/}catch (Exception ex{MessageBox.Show(ex.ToString(;}finally{conn.Close(;}}////// 检查是否有已经存在相同的名称/// true 已经存在相同用户名,不能添加数据/// false 不存在相同的用户名,可以添加/////////public bool CheckTheSameName(string name {bool result = false; //int mcount = 0;OleDbConnection conn = GetConnection(;string sqlText = "select count(* as 结果 from MResume where 姓名=@name"; OleDbCommand cmd = new OleDbCommand(sqlText, conn;cmd.Parameters.AddWithValue("@name", name;try{conn.Open(;// int i = cmd.ExecuteNonQuery(;OleDbDataReader datareader = cmd.ExecuteReader(;if (datareader.Read({mcount = int.Parse(datareader["结果"].ToString(;}if (mcount > 0{// MessageBox.Show("已经存在相同用户名!", "提示";result = true;}else{// MessageBox.Show("不存在相同用户名!", "提示";result = false;}/*DataTable dt = new DataTable(;OleDbDataAdapter oda = new OleDbDataAdapter(sqlText, conn;oda.Fill(dt;dataGridView1.DataSource = dt;*/}catch (Exception ex{MessageBox.Show(ex.ToString(;result = true;}finally{conn.Close(;}return result;}更新一条记录模块设计与实现设计:点击更新按钮弹出一个窗体(在这里是对dataGridView的一个双击事件,在窗体的文本框中填充数据,点击更新按钮,当前修改数据窗体自动关闭,同时刷新主窗体,更新并显示数据。