C# WinForm 实现增删改查等功能Access版.docx
- 文档编号:23649677
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:29
- 大小:22.43KB
C# WinForm 实现增删改查等功能Access版.docx
《C# WinForm 实现增删改查等功能Access版.docx》由会员分享,可在线阅读,更多相关《C# WinForm 实现增删改查等功能Access版.docx(29页珍藏版)》请在冰豆网上搜索。
C#WinForm实现增删改查等功能Access版
用dataGridView控件,显示ResumeTest表中的数据
用Access新建一个表MResume,人事管理表:
ID姓名性别出生日期工作年限证件类型证件号居住地Email手机号码家庭电话图片自我评价
控件的使用:
bindingNavigator(实现分页功能),dataGridView(显示数据)
在C#WinForm中有这一个app.config的文件,这个文件的作用可以当作web程序中的webconfig文件。
这里面可以记录数据库连接字符串
Access下数据库连接函数:
publicstaticOleDbConnectionGetConnection()
{
OleDbConnectionconn=null;
stringstrconnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+AppDomain.CurrentDomain.BaseDirectory+"database\\chinabase.mdb;PersistSecurityInfo=True";
try
{
conn=newOleDbConnection(strconnectionString);
}
catch(Exceptionex)
{
throwex;
}
returnconn;
}
把数据库中的数据读到dataGridView让这个控件来显示数据:
privatevoidResumeTest_Load(objectsender,EventArgse)
{
//手动代码把数据库中的数据显示出来
OleDbConnectionconn=GetConnection();
stringsqlText="select姓名,性别,出生日期,工作年限,证件类型,证件号,居住地,Email,手机号码,家庭电话,自我评价fromMResumeorderbyidasc";
OleDbCommandcmd=newOleDbCommand(sqlText,conn);
try
{
conn.Open();
//inti=cmd.ExecuteNonQuery();
DataTabledt=newDataTable();
OleDbDataAdapteroda=newOleDbDataAdapter(sqlText,conn);
DataSetds=newDataSet();
//oda.Fill(dt);
//dataGridView1.DataSource=dt;
oda.Fill(ds,"ds");
dtInfo.Clear();
//dtInfo=null;
dtInfo=ds.Tables[0];
InitDataSet(dtInfo);//初始化数据
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
//设置GridView样式
//SetUpDataGridView();
dataGridView1.SelectionMode=DataGridViewSelectionMode.FullRowSelect;//使用户能够选择行frommsdn
this.dataGridView1.EditMode=DataGridViewEditMode.EditProgrammatically;//双击不能修改了,这是通过编程的方式来修改单元格内容的
this.ComboxSelect.Items.Add("请选择类别");
this.ComboxSelect.Items.Add("姓名");
this.ComboxSelect.Items.Add("性别");
this.ComboxSelect.SelectedText="请选择类别";
}
增加一条记录模块设计与实现
设计:
点击增加按钮弹出一个窗体,在窗体的文本框中填充数据,点击保存按钮,当前添加数据窗体自动关闭,同时刷新主窗体,更新并显示数据。
实现:
需要在增加按钮事件中传递一个主窗体的指针。
///
///增加
///
///
///
privatevoid增加ToolStripMenuItem_Click(objectsender,EventArgse)
{
ResumeAddOrUpdateresumeAdd=newResumeAddOrUpdate(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中:
privateResumeTestresumeTest;//定义一个父窗体
///
///添加时的操作
///
///
publicResumeAddOrUpdate(ResumeTest_resumeTest)//这里需要从父窗体中传递一个this指针
{
InitializeComponent();
this.resumeTest=_resumeTest;
}
privatevoidResumeAdd_Load(objectsender,EventArgse)
{
txtSelfCommand.Multiline=true;//设置成多行多列显示
picPerson.SizeMode=PictureBoxSizeMode.StretchImage;//图片自适应picturebox大小
//lblImage.Text="0";//初始化是否更新图片,为空时不更新图片,不为空时则更新图片
}
///
///增加操作
///
///
///
privatevoidbtnSave_Click(objectsender,EventArgse)
{
…………
//手动代码保存数据至数据库
OleDbConnectionconn=GetConnection();
stringsqlText="insertintoMResume(姓名,性别,出生日期,工作年限,证件类型,证件号,居住地,Email,手机号码,家庭电话,自我评价,图片)values(@name,@sex,@datetimes,@years,@cardStyle,@cardNumber,@address,@email,@phoneNumber,@homeNumber,@selftCommand,@timeStamp)";
//OleDbTransactiontransaction=null;
OleDbCommandcmd=newOleDbCommand(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();
inti=cmd.ExecuteNonQuery();
//transaction.Commit();
if(i>0)
{
MessageBox.Show("添加成功!
","提示");
//this.resumeTest.Refresh();
this.resumeTest.RefreshDataGridView(sender,e);//刷新窗体
this.Close();
}
/*DataTabledt=newDataTable();
OleDbDataAdapteroda=newOleDbDataAdapter(sqlText,conn);
oda.Fill(dt);
dataGridView1.DataSource=dt;
*/
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
}
///
///检查是否有已经存在相同的名称
///true已经存在相同用户名,不能添加数据
///false不存在相同的用户名,可以添加
///
///
///
publicboolCheckTheSameName(stringname)
{
boolresult=false;//
intmcount=0;
OleDbConnectionconn=GetConnection();
stringsqlText="selectcount(*)as结果fromMResumewhere姓名=@name";
OleDbCommandcmd=newOleDbCommand(sqlText,conn);
cmd.Parameters.AddWithValue("@name",name);
try
{
conn.Open();
//inti=cmd.ExecuteNonQuery();
OleDbDataReaderdatareader=cmd.ExecuteReader();
if(datareader.Read())
{
mcount=int.Parse(datareader["结果"].ToString());
}
if(mcount>0)
{
//MessageBox.Show("已经存在相同用户名!
","提示");
result=true;
}
else
{
//MessageBox.Show("不存在相同用户名!
","提示");
result=false;
}
/*DataTabledt=newDataTable();
OleDbDataAdapteroda=newOleDbDataAdapter(sqlText,conn);
oda.Fill(dt);
dataGridView1.DataSource=dt;
*/
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
result=true;
}
finally
{
conn.Close();
}
returnresult;
}
更新一条记录模块设计与实现
设计:
点击更新按钮弹出一个窗体(在这里是对dataGridView的一个双击事件),在窗体的文本框中填充数据,点击更新按钮,当前修改数据窗体自动关闭,同时刷新主窗体,更新并显示数据。
实现:
需要在增加按钮事件中传递一个字符串和一个主窗体的指针。
///
///修改
///
///
///
privatevoid修改ToolStripMenuItem_Click(objectsender,EventArgse)
{
dataGridView1_DoubleClick(sender,e);//类似于dataGridView的更新操作,也就是双击操作
}
privatevoiddataGridView1_CellMouseDown(objectsender,DataGridViewCellMouseEventArgse)
{
//判断如果点击的是鼠标右键
if(e.Button==MouseButtons.Right)
{
//判断鼠标点击在数据行上
if(e.RowIndex>=0)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[e.RowIndex].Selected=true;
dataGridView1.CurrentCell=dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
}
}
}
///
///dataGridview1双击事件,获得某行的信息
///
///
///
privatevoiddataGridView1_DoubleClick(objectsender,EventArgse)
{
//selectedRowsButton_Click(sender,e);
Int32selectedRowCount=dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
if(selectedRowCount>0)
{
Stringstr=string.Empty;
for(inti=0;i { intselectedRow=dataGridView1.SelectedRows[i].Index;//获得选中的某行 intcolumns=dataGridView1.ColumnCount; for(intj=0;j { str+=dataGridView1.Rows[selectedRow].Cells[j].Value.ToString()+","; } } ResumeAddOrUpdateresumeAdd=newResumeAddOrUpdate(str,this); resumeAdd.SaveOrUpdate("Update"); 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(); //MessageBox.Show(str.ToString(),"SelectedRows"); } } ResumeAddOrUpdate窗体实现: /// ///增加Or更新 /// /// publicvoidSaveOrUpdate(stringstr) { if(str.ToLower().Equals("save")) { btnSave.Visible=true; btnUpdate.Visible=false; }elseif(str.ToLower().Equals("update")){ btnSave.Visible=false; btnUpdate.Visible=true; txtName.Enabled=false; } } /// ///更新时的操作 ///两个参数的构造函数 ///传递一个父窗体 /// /// /// publicResumeAddOrUpdate(stringstr,ResumeTest_resumeTest)//这里需要从父窗体中传递一个this指针 { InitializeComponent(); this.resumeTest=_resumeTest; timeStamp=0;//初始化参数 lblImage.Text="0";//初始化是否更新图片,为空时不更新图片,不为空时则更新图片 string[]content=str.Split(','); txtName.Text=content[0];//姓名 if(content[1].Equals("男")) { rbtnMale.Checked=true; } elseif(content[1].Equals("女")) { rbtnFemale.Checked=true; } dateTimePicker1.Text=content[2].ToString(); txtYear.Text=content[3].ToString(); txtCardStyle.Text=content[4].ToString(); txtCardNumber.Text=content[5].ToString(); txtAddress.Text=content[6].ToString(); txtEmail.Text=content[7].ToString(); txtPhoneNumber.Text=content[8].ToString(); txtHomeNumber.Text=content[9].ToString(); txtSelfCommand.Text=content[10].ToString(); stringstrPictrueBox=getStrOfPictureBox(txtName.Text.Trim());//根据数据库中生成的图片路径,显示图片 //MessageBox.Show(strPictrueBox,"提示"); if(strPictrueBox.Contains("nophoto.jpg")) { lblImage.Text="0";//给图片路径字符串赋值 picPerson.Image=Image.FromFile(Application.StartupPath+"\\Image\\nophoto.jpg"); } else { lblImage.Text=strPictrueBox;//给图片路径字符串赋值 picPerson.Image=Image.FromFile(Application.StartupPath+"\\Image\\"+strPictrueBox+".jpg"); } } /// ///修改操作 /// /// /// privatevoidbtnUpdate_Click(objectsender,EventArgse) { //手动代码保存数据至数据库 OleDbConnectionconn=GetConnection(); stringsqlText="UpdateMResumeset性别=@sex,出生日期=@datetimes,工作年限=@years,证件类型=@cardSt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# WinForm 实现增删改查等功能Access版 实现 增删 功能 Access
![提示](https://static.bdocx.com/images/bang_tan.gif)