C#WinForm实现增删改查等功能数据库Access.docx

上传人:b****5 文档编号:30753086 上传时间:2023-08-20 格式:DOCX 页数:29 大小:21.41KB
下载 相关 举报
C#WinForm实现增删改查等功能数据库Access.docx_第1页
第1页 / 共29页
C#WinForm实现增删改查等功能数据库Access.docx_第2页
第2页 / 共29页
C#WinForm实现增删改查等功能数据库Access.docx_第3页
第3页 / 共29页
C#WinForm实现增删改查等功能数据库Access.docx_第4页
第4页 / 共29页
C#WinForm实现增删改查等功能数据库Access.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C#WinForm实现增删改查等功能数据库Access.docx

《C#WinForm实现增删改查等功能数据库Access.docx》由会员分享,可在线阅读,更多相关《C#WinForm实现增删改查等功能数据库Access.docx(29页珍藏版)》请在冰豆网上搜索。

C#WinForm实现增删改查等功能数据库Access.docx

C#WinForm实现增删改查等功能数据库Access

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,证件类型=@cardStyle,证件号=@cardNumber,居住地=@address,Email=@email,手机号码=@phoneNumber,家庭电话=@homeNumber,自我评价=@selftCommand,图片=@timeStampwhere姓名=@name";

//OleDbTransactiontransaction=null;

OleDbCommandcmd=newOleDbCommand(sqlText,conn;

//transaction=conn.BeginTransaction(;

//cmd.Transaction=transaction;

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;

cmd.Parameters.AddWithValue("@timeStamp",lblImage.Text;

cmd.Parameters.AddWithValue("@name",name;

try

{

conn.Open(;

inti=cmd.ExecuteNonQuery(;

MessageBox.Show("更新成功!

","提示";

this.resumeTest

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1