黑马自学_DataSet

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

DataSet的来历:

在用SqlDataReader来做查询的时候数据库链接是一直处于打开状态,它并不是蒋数据存储到本地,而是以指针形势去指向服务器中的数据。

那么一旦网络中断就无法继续读取数据,而且会一直占用数据连接。所以比较麻烦。

DataSet的好处:

DataSet是将数据保存在本地内存中,保存完成后就释放连接。那么就可以在本地处理查询到的数据。解决了以上2个问题。

DataSet和SqlDataAdapter使用。通过SqlDataAdapter的File()把查询出来的数据填充到DataSet中。

数据是以DataTable的形式存在DataSet中,通过DataTable的Rows来查看每一行的数据。再通过列名获取对应的数据。

 DataSet的坏处:

1,编程时错误不容易被发现。比如sql语句或列名写错在编译的时候才能发现。

2,如果是别人调用自己写的代码也不容易读懂。需要看文档才能明白。

 

 

类型化DataSet:

所谓类型化DataSet就是将数据类型化。以类的方式来查看和调用。不需要写一句ADO.NET语句。

这样只需要打点就能知道里面有什么字段了,用起来比一般的DataSet方便。

使用方法:

1,在项目中创建一个数据集。然后将表结构拖拽到xsd文件里,程序会自动生成一些类。里面包含了一系列方法和sql语句。

2,new一个“[表名]+TableAdapter”类的实例,里面包括了update(),insert(),delete(),GetData()的方法。

3,通过GetData()读取所有数据用“[表名]+DataTable”来接收。也可以写自定义方法来根据自己的需求查询想要的数据。

例子:

            t_UsersTableAdapter adapter = new t_UsersTableAdapter(); //new一个用户表users的adapter对象
            //根据用户名获取改用户的所有信息:密码、登录时密码输入错误次数。
            System.DST_Users.t_UsersDataTable user = adapter.GetDataByName(txtUserName.Text);
            if (user.Count == 0)//如果未找到该用户则....
                MessageBox.Show("用户名不存在");
            else
            {
                if (user[0].errortimes >= 3)//用户名通过验证后接着判断他输入的密码错误次数
                    MessageBox.Show("密码输入错误次数过多,禁止登陆");
                else
                {
                    if (user[0].password == txtPassWord.Text)
                    {//输入密码正确.........
                        MessageBox.Show("登陆成功");
                        user[0].errortimes = 0;
                        adapter.Update(user);
                    }
                    else
                    {//输入密码错误.........
                        user[0].errortimes += 1;
                        adapter.Update(user[0]);
                        MessageBox.Show("密码错误");
                    }
                }
            }



 


 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值