DataTable和DataSet都可以看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,用这两个容器有什么好处呢?


这种容器的功能很强大,除了可以存数据,还可以有更大用途。例如:在一个c/s结构的桌面数据库系统里,你可以把前面存放查询结果的容器里的数据显示到你客户端界面上,用户在界面上对数据进行添加、删除、修改,你可以把用户的操作更新到容器,等用户操作完毕了,要求更新,然后你才把容器整个的数据变化更新到中心数据库,这样做的好处是什么?就是减少了数据库操作,客户端速度提高了,数据库压力减小了。


DataSet可以比作一个内存中的数据库,可以包括表,视图等。DataTable是一个内存中的数据表,DataSet里可以存储多个DataTable。


例如;以下代码,就是将数据结果放到了DataSet中,这个也是比较常见的写法,最后返回查询到的结果集。

  public static DataSet Query(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                return ds;
            }
        }

 下面的代码将查询到的数据结果放到DataTable中,DataTable就相当于一张数据表,最后将数据结果绑定到DropDownList控件中。

        protected void BindDropDownList_Frame1()
        {
            DropDownList_Frame2.Items.Clear();
            ListItem item = new ListItem("请选择...", "-1");
            DropDownList_Frame2.Items.Add(item);
            sqlDataEmployee sde = new sqlDataEmployee();
            DataTable dt = sde.GetFrame1();
            DropDownList_Frame2.DataSource = dt;
            DropDownList_Frame2.DataTextField = "Frame2";
            DropDownList_Frame2.DataValueField = "Frame2";
            DropDownList_Frame2.DataBind();
        }



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐