数据集可以导入mysql_利用数据集进行数据访问操作

数据访问有两种不同的方式,一种是用Connection, Command , DataReader来进行数据对数据的操作,另一种是用DataAdapter(适配器)来进行数据操作,而数据则一般放在内存中的数据集合DataSet,这种方式可以在内存中对数据操作,然后在合适的时间再将修改传到数据库。

ea1a9de504450c8ecd32933e47f5c2dd.png

f9e1e4a1cc997897e0fd61895e0601d0.png

一. 建立数据集:

1. 在解决方案右键添加新建项,找到数据中的数据集:

043150624026bf084433447059e223b0.png

2. 在服务器资源管理器里数据连接添加连接:

c14c8447745c306230c935f6992826da.png

e1b452fdfaad18280c9e90c4cfd9a3bf.png

3. 之后找到数据库里面需要用到的表,选中之后拖拽至右侧数据集里:

caccb29079530ec4a3036ff7b8bb3c96.png

这样一个数据集就建好了。

二:在数据集里添加新查询

1. 选中一个表的TableAdapter,右键配置高级选项,勾掉后两项,去掉并发

1db6f5416a11675d179482d62b201644.png

2. 右键添加查询,选SQL语句下一步,选择查询的类型(是要返回行或单个值或修改,删除,添加)下一步,写SQL语句,之后完成。

0b29c94628210946d4dc0fb7b6501953.png

3. 这样在数据集可以看到我们自己添加的查询了:

7047d74ff76b951ccb1e8f96b5bd651b.png

三: 如何使用

1. 造适配器对象:

InfoTableAdapter adp = new InfoTableAdapter();

2. 造内存表对象

Mydb.InfoDataTable table = new Mydb.InfoDataTable();

3. 查询返回

table = adp.GetData();

4. 修改

InfoTableAdapter adp = newInfoTableAdapter();

adp.UpdateBycode(name, sex, nation, birthday, code);

例子:在DataGridView里面将内存数据集(dataset)显示,对其进行添加、删除、修改操作,之后将所有修改一并提交至数据库

在这里对数据集的操作都将会做出标记,在提交至数据库的时候系统会自动根据标记找到要修改、删除的行,对其进行操作。

b2115697afab682e50be21eb164b381e.png

代码:

private DataSet _DS = newDataSet();private void Form2_Load(objectsender, EventArgs e)

{//建立连接

SqlConnection conn = new SqlConnection("server=.;database=mydb;uid=sa;pwd=901004");//造适配器

SqlDataAdapter adapter = newSqlDataAdapter();

adapter.SelectCommand= newSqlCommand();

adapter.SelectCommand.CommandText= "select * from info";

adapter.SelectCommand.Connection=conn;//执行查询,将数据添加进内存数据集

adapter.Fill(_DS);//将内存数据集用控件显示

dataGridView1.DataSource = _DS.Tables[0];

}private void button1_Click(objectsender, EventArgs e)

{//添加

DataRow row = _DS.Tables[0].NewRow();

row["Code"] =txtCode.Text;

row["Name"] =txtName.Text;

row["Sex"] =Convert.ToBoolean(txtSex.Text);;

row["Nation"] =txtNation.Text;

row["Birthday"] =Convert.ToDateTime(txtBirthday.Text);

_DS.Tables[0].Rows.Add(row);

}private void button2_Click(objectsender, EventArgs e)

{

SqlConnection conn= new SqlConnection("server=.;database=mydb;uid=sa;pwd=901004");

SqlDataAdapter adapter= newSqlDataAdapter();//添加的

SqlCommand cmd =conn.CreateCommand();

cmd.CommandText= "insert into info values(@code,@name,@sex,@nation,@birthday)";

cmd.Parameters.Add("@code", SqlDbType.VarChar, 50, "Code");

cmd.Parameters.Add("@name", SqlDbType.VarChar, 50, "name");

cmd.Parameters.Add("@sex", SqlDbType.Bit, 1, "Sex");

cmd.Parameters.Add("@nation", SqlDbType.VarChar, 50, "Nation");

cmd.Parameters.Add("@Birthday", SqlDbType.DateTime,8, "Birthday");

adapter.InsertCommand=cmd;//修改的

SqlCommand cmd1 =conn.CreateCommand();

cmd1.CommandText= "update info set name=@name,sex=@sex,nation=@nation,birthday=@birthday where code=@code";

cmd1.Parameters.Add("@code", SqlDbType.VarChar, 50, "Code");

cmd1.Parameters.Add("@name", SqlDbType.VarChar, 50, "name");

cmd1.Parameters.Add("@sex", SqlDbType.Bit, 1, "Sex");

cmd1.Parameters.Add("@nation", SqlDbType.VarChar, 50, "Nation");

cmd1.Parameters.Add("@Birthday", SqlDbType.DateTime, 8, "Birthday");

adapter.UpdateCommand=cmd1;//删除的

SqlCommand cmd2 =conn.CreateCommand();

cmd2.CommandText= "delete from info where code=@code";

cmd2.Parameters.Add("@code", SqlDbType.VarChar, 50, "Code");

adapter.DeleteCommand=cmd2;//提交

adapter.Update(_DS);

MessageBox.Show("OK");

}private void button3_Click(objectsender, EventArgs e)

{//删除

DataRow row = null;//找行

foreach (DataRow dr in _DS.Tables[0].Rows)

{if (dr["Code"].ToString() ==txtCode.Text)

{

row=dr;

}

}if (row != null)

{//把行删掉

row.Delete();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值