C#中DataSet的使用

DataSet的使用

  java中有result来获取数据集,而c#中有Dataset来获取数据集,那么我们应该怎么获取数据集呢?下面说一下获取数据集的几种方式:
第一种: 把数据库中的数据通过DataAdapter对象填充DataSet。
这种是比较简单的方式,主要是通过dataAdapter中的fille和fillSchema方法来对数据集进行填充。
主要代码如下:

 class Test
    {
        //数据库连接
        private OleDbConnection olecon;
        //命令
        private OleDbCommand olecom;
        //适配器
        private OleDbDataAdapter oledata;
        //创建list集合:只存放student对象
        private List<student> list = new List<student>();
        //数据库链接类
        private void link()
        {
            //数据库连接语句
            string sqlcon = "provider=microsoft.jet.oledb.4.0;data source=./data.mdb";
            //创建数据库连接对象
            olecon = new OleDbConnection(sqlcon);
            //打开数据库连接
            olecon.Open();
            //插入的sql语句
            string addsql = "insert into Data.Test(test_name,test_grade,test_age) values ('张三','软件一班','22')";
            //选择的sql语句
            string selsql = "select * from Test";
            try
            {
                //创建添加命令,将数据添加到数据库中
                olecom = new OleDbCommand(addsql, olecon);
                //执行命令
                olecom.ExecuteNonQuery();
                //测试是否添加成功
                Console.WriteLine("保存成功");
                //创建选择命令,将数据库中的数据选择
                olecom = new OleDbCommand(selsql, olecon);
                //得到oledbdataadapter对象,及dataset与数据之间的桥梁
                oledata = new OleDbDataAdapter(olecom);
               //  创建dataset数据集用来接收数据
                DataSet ds = new DataSet();
                //把获得的数据赋给dataset数据集
                oledata.Fill(ds);
                //遍历数据集
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {
                    //获取第一个表中第二列的所有值
                    string name = ds.Tables[0].Rows[i][1].ToString();
                    //获取第一个表中第三列的所有值
                    string grade = ds.Tables[0].Rows[i][2].ToString();
                    //获取第一个表中第四列的所有值
                    string age = ds.Tables[0].Rows[i][3].ToString();
                    //通过构造函数构建student对象
                    student st = new student(name,grade,age);
                    //将构建的对象添加到list集合中
                    list.Add(st);
                    //测试是否添加
                    Console.WriteLine("添加了"+i+"个");
                }
                foreach(student st in list){
                    //遍历list集合输出所有信息
                    Console.WriteLine("我的姓名:"+st.Name+"我的班级:"+st.Grade+"我的年龄"+st.Age);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("异常++" + ex.Message);
            }
            finally
            {
                //关闭数据库
                olecon.Close();
                //释放资源
                olecon.Dispose();
            }
        }
        private static void Main(String[] args)
        {
            //调用方法
            new Test().link();
            Console.ReadKey();
        }
    }

  第二种方式 把XML数据流或文本加载到DataSet

  由于ADO.NET2.0中增强了与XML文件的结合,所以在这个时候DataSet中的数据可以从XML数据流或文档创建。加载XML数据流和文档到DataSet中是可使用DataSet对象的ReadXml方法。该ReadXml方法读取 XML 流或文档的内容并将数据加载到 DataSet 中。根据所指定的XmlReadMode和关系架构是否已存在,它还将创建DataSet的关系架构。

实现代码如下所示:

DataSet ds= new DataSet("xmlds");

ds.ReadXml("c:\\databases.xml");
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值