winfrom点击按钮修改数据_C#在winform中操作数据库,实现数据增删改查

为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里;

为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据;

我们新建一个文件夹,把这两个类放在这个文件夹(App)里,以后,把命名空间写上就可以使用这两个类了。

7466cbc7ffa26bc4a83c30ae0836c822.png

34f4bc064686a938d06c2f42a95c07e0.pngefcd73159890f877a7a05a0e6ea379e4.png

为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据。

首先,建立程序的主窗体

ce595f36bc06c5c5ef5f6c774bd92c1d.png

㈠添加数据

当点击“增加”,弹出一个子窗体,通过子窗体往数据库中添加一条数据

private void button1_Click(objectsender, EventArgs e)

{

Form5 insert= newForm5();

insert.Owner= this;

insert.Show();

}

2e9ceb38b1fbffb20feaab72f3074191.png

子窗体里的函数:

ba6768879aaa7ffccf462195c539f87f.gif

public partial classForm5 : Form

{publicForm5()

{

InitializeComponent();

}private void button1_Click(objectsender, EventArgs e)

{//将文本框中的数据存入SqlData类型的变量udata中

SqlData udata = newSqlData();

udata.Name=textBox1.Text;

udata.Code=textBox2.Text;new SqlDA().addData(udata);//调用添加数据函数,添加数据udata

}

}

a34b347588fda142541ba43ca89018bd.gif

运行程序,添加数据,查看结果

387c147bd8a2c056d5802163ff857199.png81a93016eef06739964824a8eb7e9cc9.png

㈡查询数据

第一个查询形式,

首先我们需要窗口一加载,就显示出数据库中的所有数据

首先,在存放方法的SqlDA类中,添加一个获取数据的成员方法,该方法能返回一个数据集合

93ac29c714ddf13a0ed8af20bd2b2c9f.gif

//查询数据的方法

public List select()

{

List list=new List();//连接数据库,访问数据

_cmd =_con.CreateCommand();

_con.Open();

_cmd.CommandText= "select *from users";

SqlDataReader dr=_cmd.ExecuteReader();//将数据库数据转换成Sqldata类型,并放入list集合中

while(dr.Read())

{

SqlData data=newSqlData();

data.Code= dr["code"].ToString();

data.Name= dr["name"].ToString();

data.Pwd= dr["pwd"].ToString();

list.Add(data);

}

_con.Close();returnlist;

}

b141ac35b92390c75a5ab51f0639a6b9.gif

然后定义一个绑定数据函数,该函数将上面成员方法返回的数据绑定到listview1中,显示出来

fe39d234002d047474e79144458eb9b1.gif

//绑定数据函数

public void bindData(Listlist)

{//构建表结构

listView1.Columns.Add("编号");

listView1.Columns.Add("用户名");

listView1.Columns.Add("密码");//将集合中的数据放入listview1中

foreach (SqlData data inlist)

{

ListViewItem it= new ListViewItem();//构建一个listviewitem对象,通过它把数据放入listview1中

it.Text =data.Code;

it.SubItems.Add(data.Name);

it.SubItems.Add(data.Pwd );

listView1.Items.Add(it);//将数据放入listview1的items集合中,

}

}

25807b10e70853a6a00d391a1f28d7ca.gif

然后窗体加载事件中,追加绑定数据函数的委托

//窗体一加载,在listview1中绑定数据

private void Form4_Load(objectsender, EventArgs e)

{

bindData(new SqlDA().select());

}

运行结果

82a3126a8a5b6f88c270162743adcc93.png

第二个查询形式,

在窗口中输入用户名,根据用户名进行模糊查询

首先写一个需要参数(用户名)的查询函数,我们可以写一个select的重载函数,如下

ade032de3d4f7c7653930ee7d9d971bc.gif

//查询数据的方法2,需要一个字符串参数,与上面的函数构成重载

public List select(stringuname)

{

List list = new List();//连接数据库,访问数据

_cmd =_con.CreateCommand();

_con.Open();

_cmd.CommandText= "select *from users where name like '%"+uname+"%'";

SqlDataReader dr=_cmd.ExecuteReader();//将访问到的数据库数据转换成Sqldata类型,并放入list集合中

while(dr.Read())

{

SqlData data= newSqlData();

data.Code= dr["code"].ToString();

data.Name= dr["name"].ToString();

data.Pwd= dr["pwd"].ToString();

list.Add(data);

}

_con.Close();returnlist;

}

ac481d6bef259657fedff43cd52417d2.gif

点击“查询”按钮

//通过输入用户名,查询数据

private void button4_Click(objectsender, EventArgs e)

{

listView1.Items.Clear();

bindData(new SqlDA().select(textBox1.Text));

}

a17860643e7ab0d8f950a311104fa59e.png

㈢修改数据

首先,将主窗口的FullRowSelect属性设为True,使行数据可选

158ee337c065edc92f854cbb8a2718f5.png

点击“修改”,弹出以下“修改”子窗体

dfda03f4f5541c19275928cda602f072.png

修改数据不需要修改编号,将“修改”子窗体的第一个文本框的“Enabled”属性设为false。

“修改”子窗体的代码

a716927c516e2064f4ce1e23584a51f6.gif

public partial classForm6 : Form

{publicForm6()

{

InitializeComponent();

}//重写修改窗口的构造函数,显示选中项的数据

publicForm6(SqlData data)

{

InitializeComponent();

textBox3.Text=data.Code;

textBox1.Text=data.Name;

textBox2.Text=data.Pwd;

}private void button1_Click(objectsender, EventArgs e)

{//将输入的内容转成SqlData格式

SqlData data = newSqlData();

data.Code=textBox3.Text;

data.Name=textBox1.Text;

data.Pwd=textBox2.Text;//调用修改数据函数

newSqlDA().update(data);

}

}

af6e5f89e0a46062dc6ef6158ea95089.gif

修改数据的函数

ce07010013b54a1107dda262f84f8e7c.gif

//修改数据的方法

public voidupdate (SqlData data)

{//打开连接,拼接命令

_con.Open();

_cmd=_con.CreateCommand();

_cmd.CommandText= "update users set name=@name,pwd=@pwd where code=@code";

_cmd.Parameters.Add("@name",data.Name );

_cmd.Parameters.Add("@pwd", data.Pwd);

_cmd.Parameters.Add("@code", data.Code);//执行命令,关闭连接

_cmd.ExecuteNonQuery();

_con.Close();

}

2c7a0b508676e401b72a900766827b10.gif

将用户名、密码输入后,点击“修改”,在主窗口中点击“查询”,可以看到数据已修改

3e589ea3f99bab95e4b375601cfe11e0.png

㈢删除数据

17f852144e1a79ada0d108de120d7ebf.gif

//删除数据的方法

public voiddelete(SqlData data)

{//打开连接,拼接命令

_con.Open();

_cmd=_con.CreateCommand();

_cmd.CommandText= "delete from users where code=@code";

_cmd.Parameters.Add("@code", data.Code);//执行命令,关闭连接

_cmd.ExecuteNonQuery();

_con.Close();

}

7f4e748c993beacd436e1d33c4c8a2ab.gif

f3ff9e33ec2c75cb7a4a5eae40a30d35.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值