澳门新葡萄京官网注册DataSet与DataTable对象

MSDN 上说:

DataSet与DataTable对象

摘自:

DataSet对象

DataSet是ADO.NET中最核心的成员之一,是各种基于.NET平台程序语言(如VB.NET、C#.NET、C++.NET)的数据库应用程序开发最常接触的类,这是因为DataSet在ADO.NET实现从数据库中抽取数据的作用。数据抽取后,DataSet就是数据的存放地,它是各种数据源(SQL
Server 、OLE
DB等)的数据在计算机内存的缓存,所以有时说DataSet可以看成是一个数据容器(又称数据集)。在客户端通过对DataSet的数据集读取、更新等操作,从而实现对数据源的同等操作。

DataSet的最大优点是离线(断开)和连接。DataSet既可以以离线方式,也可以以实时连接方式来操作数据库中的数据。这样的好处是大大减少了服务器端数据库的连接线程,从而大大地减少了服务器端的运行压力。所以,在数据量不大的情况下,使用DataSet是最好的选择。

DataSet的基本工作过程:应用程序一般并不直接对数据库进行操作(直接在程序中调用存储过程等除外),而是先完成和数据库的连接,接着通过数据适配器(DataAdapter)把数据库中的数据填入DataSet对象,然后客户端再通过读取DataSet来获得需要的数据,同样,在更新数据库中的数据时,也是首先更新DataSet,然后再通过DataSet和数据适配器将更新的数据同步地解释入数据库中。

DataSet中的几个重要对象: TablesCollection对象:DataSet
里的表用DataTable来表示,一个DataSet里面可以包含多个DataTable,这些DataTable就构成了
TablesCollection对象。每个DataTable中都包含一个ColumnsColleciton和一个RowsCollection对
象。
RelationsCollection对象:各个DataTable之间的关系通过DataRelation来表达,这些DataRelation构成的集合就是RelationsCollection对象。
ExtendedProperties对象:这个对象用来定义特定的信息,比如密码、更新时间等。

DataTable对象

每一个DataSet都是一个或多个DataTable
对象的集合(DataTable相当于数据库中的表),这些对象由数据行(DataRow)、数据列(DataColumn)、字段名(Column
Name)、数据格(Item),以及约束(Constraint)和有关DataTable对象中数据的关系(Relations)与数据显示排序(DataView)信息组成。

DataView用来在观察数据时提供排序和过滤的功能。DataColumn用来对表中的数据值进行一定的规限。比如哪一列数据的默认值是什么、哪一列数据值的范围是什么、哪个是主键、数据值是否是只读等。

由于一个DataSet可能存在多张表,这些表可能存在关联关系,因此用parentRelations和childRelations来表述。ParentRelations表是父表,childRelations是子表,子表是对父表的引用,这样就使得一个表中的某行与另一个表中的某一行甚至整个表相关联。

1.DataSet操作

①用DataAdapter填充

DataSetDataSet ds = new DataSet();  

adapter.Fill(ds);  

adapter.Fill(ds, “表名”); //用一个表去填充DataSet. 

②合并两个DataSet

myConnection.Open();  

 

string strSQL = “SELECT * FROM P_Product”;  

DataSet ds1 = new DataSet();              

SqlDataAdapter adapter1 = new SqlDataAdapter(strSQL, myConnection);
 

adapter1.Fill(ds1, “Product”);  

strSQL = “SELECT *澳门新葡萄京官网注册, FROM P_Category”;  

DataSet ds2 = new DataSet();  

SqlDataAdapter adapter2 = new SqlDataAdapter(strSQL, myConnection);
 

adapter2.Fill(ds2, “Category”);

myConnection.Close();

 

//ds1就是合并后的DataSet  

ds1.Merge(ds2, true, MissingSchemaAction.AddWithKey);  

GridView1.DataSource = ds1.Tables[“Product”];  

GridView1.DataBind();  

GridView2.DataSource = ds1.Tables[“Category”];  

GridView2.DataBind(); 

 

2.DataTableCollection操作

表示 DataSet 的表的集合。

DataTableCollection dtc = ds.Tables;

DataTable customerTable = dtc[“Product”]; 

 

3.DataRelation操作

//创建DataRelation
DataRelation dr;
DataColumn parentCol;
DataColumn childCol;

parentCol = ds.Tables[“Customers”].Columns[“CustomerID”];
childCol = ds.Tables[“Orders”].Columns.[“CustomerID”];
dr = new DataRelation(“CustOrders”, parentCol, childCol);
ds.Relations.Add(dr);

currentParentRow = ds.Tables[“Customers”].Rows[DataGridName.SelectedIndex];
foreach(DataRow r in currentParentRow.GetChildRow(“CustOrders”))
{
   Lable1.Text += r[“OrderID”] + “,”;
}

 

//DataRelation实现父子表(范例)

if (!IsPostBack)
{
    using (OleDbConnection con = new OleDbConnection(cn))
    {
          DataSet ds = new DataSet();

          OleDbDataAdapter dr1 = new OleDbDataAdapter(“select * from
km”, con);
          OleDbDataAdapter dr2 = new OleDbDataAdapter(“select * from
km1”, con);
          dr1.Fill(ds, “tb1”);
          dr2.Fill(ds, “tb2”);

          ds.Relations.Add(“newtb”, ds.Tables[0].Columns[“id”],
ds.Tables[1].Columns[“flag”]);
          Repeater1.DataSource = ds;
          Repeater1.DataBind();

    }
}

<asp:Repeater ID=”Repeater1″ runat=”server”>
<ItemTemplate>
<div class=”adminleft” id=’admin<%# Eval(“id”) %>’>
<h2 id=’h<%# Eval(“id”) %>’ onmouseout=”fff(‘h<%#
Eval(“id”) %>’)” onmouseover=”f(‘h<%# Eval(“id”) %>’)”
onclick=”javascript:location.href=’showbj.aspx?flag=<%# Eval(“id”)
%>&na=<%# Eval(“subject”) %>'”><%#Eval(“subject”)
%></h2>
     <ul>
     <asp:Repeater ID=”Repeater2″ runat=”server” DataSource='<%#
((DataRowView)Container.DataItem).Row.GetChildRows(“newtb”) %>’
OnItemCommand=”Repeater1_ItemCommand”>
     <ItemTemplate>
     <li><asp:LinkButton ID=”LinkButton1″ runat=”server”
CommandArgument='<%#Eval(“[“flag”]”) %>’
CommandName=”re”><%#Eval(“[“subject”]”)
%></asp:LinkButton></li>
     </ItemTemplate>
     </asp:Repeater>
     </ul>
</div>
</ItemTemplate>
</asp:Repeater>

 

4.DataTable操作

①创建一个DataTable

DataTable MyTable;
MyTable = new DataTable (“Test”);
MyTable.CaseSensitive = False;//是否区分大小写
MyTable.MinimumCapacity = 100;//数据库的最小记录空间

②创建表列

DataTable MyTable;
DataColumn MyColumn;
MyTable = new DataTable (“表名”);

MyColumn = MyTable.Columns.Add(“列名”,typeof(string));

MyColumn = MyTable.Columns.Add(“列名”,typeof(int));

③创建表达式列

//方法一
DataColumn tax = new DataColumn();
tax.DataType = typeof(Currency);
tax.Expression = “total*rate*0.20”;

//方法二
MyTable.Columns.Add(“tax”, typeof(Currency), “total*rate*0.20”);

④从DataTable中删除DataRow对象

(1)DataRowCollection对象的Remove方法

     DataRow drEmployee = dtEmployees.Rows(3);
     dtEmployees.Rows.Remove(drEmployee);

(2)DataRow对象的Delete方法

     drEmployee.Delete;

比较:Remove方法时从DataRowCollection中删除DataRow,而Dalete方法只是对删除的行做标记。
DataRow类包括RowState属性。RowState属性值表示从第一次创建DataTable(或从数据库加载DataTable)开始,行是
否发生更改,如何更改以及通过何种方式更改。属性的可选值:Modified |
Detached | Added。

⑤DataTable进行动态的筛选和排序

 

(1)获取所有行。

  1. DataRow[] rows = dt.Select();  

(2)按主键顺序(如没有主键,则按照添加顺序)获取符合筛选条件的行。

  • DataRow[] rows = dt.Select(“ID>52”); 

(3)获取符合筛选条件的行,并按指定的排序条件排序。

  • DataRow[] rows = dt.Select(“ID>52″,”ID DESC”); 

(4)获取符合筛选条件和指定状态的行,并按指定的排序条件排序。

  1. string strExpr = “ID>52”;  
  2. string strSort = “ID DESC”;  
  3. DataRow[] foundRows = dt.Select(strExpr, strSort, 
    DataViewRowState.OriginalRows); 

⑥DataTable进行数据统计

我们在使用SQL
Server时,可以轻松地对数据进行Sum、Aver、Count等操作以获得统计结果,那么,在已经把数据检索出来的DataSet(DataTable)中如何进行统计呢?特别是通过第三方接口Web
Service获得了DataSet,这个时候,没有办法去执行Select语句来获取这些统计,怎么办呢?

办法总比问题多,其实在DataTable中也是可以进行数据统计的。

下面就通过几个简单的示例,介绍一下如何无须通过逐条记录进行计算就可以轻松地获得DataTable中的记录统计结果。这里调用的是功能强大的DataTable的函数Compute。

(1)函数说明:

 

  1. public object Compute(string strExpression,string strFilter); 

 

 

 

 

strExpression:要计算的表达式字符串,基本上类似于Sql
Server中的统计表达式。

strFilter:统计的过滤字符串,只有满足这个过滤条件的记录才会被统计。

(2)调用示例。

假设一个产品销售表P_Sell,描述商场中各销售人员的销售记录,如表5-2所示。

表5-2  产品销售表

 

序号

列名

数据类型

长度

主键

允许空

说明

1

ID

int

4

 

流水号

2

Name

varchar

50

 

姓名

3

Sex

smallint

2

 

性别:0为女,1为男

4

Birthday

datetime

8

 

生日

5

ProductId

varchar

20

 

销售产品代码

6

Num

int

4

 

销售的数量

7

Price

decimal

9

 

销售价格

 

统计所有性别为女的销售员的数量:

 

  1. object n = table.Compute(“count(ID)”, “Sex = 0”); 

 

 

 

 

统计所有年龄大于20岁的销售员的数量:

 

  1. int c=(int)table.Compute(“count(ID)”,  
  2. “Birthday<‘” + DateTime.Today.AddYears(-20)+”‘”); 

 

 

 

 

统计销售产品的平均价格:

 

  1. decimal ap=(decimal)table.Compute(“avg(Price)”, “true”); 

 

 

 

 

统计产品代码为1的产品销售数量:

 

  1. object m = table.Compute(“sum(Num)”, “ProductId=’sj'”); 

 

 

 

 

统计所有产品的销售总金额:要统计销售总金额,table中不存在某项产品某个促销员销售的金额数据,但我们可以通过Quantity*Price来获得。比如table.Compute(“Sum(Quantity*Price)”,”true”);。

这里有一个问题是,DataTable的统计功能没有SqlServer强大,这个写法是错误的!
因为Compute的统计不具备Sum(Quantity*Price)这样的数据的功能。那怎么办呢?

对于这样复杂数据的统计,我们可以通过在DataTable中创建一个新的DataColumn来完成,比如为”total”,同时设置该字段的Expression为Quantity*Price,这样我们就可以使用统计功能了。

 

  1. DataColumn dc = new DataColumn(“total”, Type.GetType(“System.Decimal”));
     
  2. dc.Expression = “Num*Price”;  
  3. table.Columns.Add(dc);              
  4. object s=table.Compute(“sum(total)”, “true”); 

 

 

 

 

当然,这个功能也可以通过
DataGrid增加一个模板列,在ItemDataBind事件里实现计算。

⑦.合并两个DataTable表的数据

 

  1. DataTable dt1 = ds.Tables[0];  
  2. DataTable dt2 = ds.Tables[1];  
  3. dt1.Merge(dt2, true, MissingSchemaAction.AddWithKey); 

 

5.DataView操作

DataView就时数据视图,为数据库结构提供了外模式的实现。同时DataView也可以为窗体控件和Web控件提供数据绑定功能,在每一个DataTable中内建了一个DataView为:DataTable.DefaultView()。

(1)得到DataView。

 

  1. DataView dv = ds.Tables[0].DefaultView;  
  2. //或  
  3. DataView dv = new DataView(ds.Tables[“Product”], “ID > 52”, “ID DESC”,
     
  4. DataViewRowState.CurrentRows); 

 

 

 

 

 

(2)得到DataView的行数据。

 

  1. foreach (DataRowView rowview in dv)  
  2. {  
  3.     for (int i = 0; i < dv.Table.Columns.Count; i++)  
  4.     {  
  5.         Response.Write(rowview[i] + “
    “);  
  6.     }      

 

 

 

 

 

(3)对结果集过滤排序。

 

  1. DataView dv = ds.Tables[0].DefaultView;  
  2. dv.RowFilter = “ID > 52”;  
  3. dv.Sort = “ID DESC”;  
  4. int c = dv.Count;  
  5. if (c > 51)  
  6. {  
  7.     for (int n = 50; n < c; n++)  
  8.     {  
  9.         dv.Delete(n);  
  10.     }  
  11. }  
  12. this.DataGrid1.DataSource = dv; 

 

 

6.绑定数据操作

GridView.DataSource = ds;
GridView.DataMember = “Authors”;
GridView.DataBind();

 

GridView.DataSource = ds.Tables[“Authors”];
GridView.DataBind();

 

DataView dv = new DataView(ds.Tables[“Authors”]);
dv.RowFilter = “state = ‘CA'”;
GridView.DataSource = dv;
GridView.DataBind();

使用GridView控件绑定数据源

如果您正在使用 GridView 或 DetailsView 控件,则自动创建(例如,当
AutoGenerateColumns 属性为 true 时)的 DataControlField
对象不会存储在公共可访问的字段集合中。只能访问和操作不是自动生成的
DataControlField 对象。

GridView控件个人认为就是数据表格控件,它以表格的形式显示数据源中的数据。每列表示一个字段,每行表示一条记录。

也就是说,如果一个 GridView 的列全部是自动创建的,那么其 Columns.Count
结果就总为 0。

GridView控件支持在页面有一下功能:

要获取实际的列数,可以透过数据源获取,比如:

  1. 绑定至数据源控件。
  2. 内置排序功能。
  3. 内置分页功能。
  4. 内置行选择功能。
  5. 以编程的方式访问GridView对象模型以动态设置属性,处理事件等。
  6. 多个键字段。
  7. 用于超连接列的多个数据字段。
  8. 可通过主题和样式自定义外观。

dataView.Table.Columns.Count

绑定GridView控件到数据源的有两种方法:通过配置数据源绑定和通过代码绑定。

如果要更改相关内容,也是透过数据源,比如更改列名:

1.通过配置数据源绑定GridView控件

dataView.Table.Columns[0].ColumnName = “c1”;

下面演示通过SqlDataSource控件配置数据源,并连接数据库,然后使用GridView控件绑定SqlDataSource数据源。

上面是通过编程的方式与 DataView 控件相连,如果是通过声明式的数据绑定与
DataView 控件相连就无法办到了。比如通过 SqlDataSource
这个控件指定数据源与要选的数据,而 DataView 通过 DataSourceID 与
SqlDataSource 相连。

数据库表内容如:

澳门新葡萄京官网注册 1

新建一个网站,建立一个Inde.aspx页面。在工具箱->数据分类下面拽一个GridView控件和一个SqlDataSource控件出来。如下图:

澳门新葡萄京官网注册 2

澳门新葡萄京官网注册 3

澳门新葡萄京官网注册 4

澳门新葡萄京官网注册 5接下来配置SqlDataScource控件,

澳门新葡萄京官网注册 6澳门新葡萄京官网注册 7

接下来就要配置GridView控件了,在GridView控制中选择我们的数据源SqlDataSource控件即可,如下图

澳门新葡萄京官网注册 8

配置完成后,运行下我们的效果看下,如下图

澳门新葡萄京官网注册 9

2.通过代码绑定GridView控件

同样上面的代码可以用下面的代码完成。加载事件时写法:

using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace DataShowApplication{    public partial class Index : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            //创建字符串连接            SqlConnection sqlconn = new SqlConnection ("Data Source=.\CENA;Initial Catalog=Asp.net;Persist Security Info=True;User ID=sa;Password=123456");            SqlDataAdapter sqlda = new SqlDataAdapter("select * from DemoStu", sqlconn);            DataSet ds = new DataSet ();            sqlda.Fill;            this.Data_GridView.DataSource = ds;            this.Data_GridView.DataBind();        }    }}

自定义GridView控件的列

GridView控件中的每一列有一个DataControlField对象。

  1. BoundField列:默认的数据绑定类型,通常用于显示普通文本。
  2. CheckBoxField列:显示布尔类型的数据。绑定数据为true时,复选框数据绑定列为选中状态;绑定数据为false时,则显示未选中状态。
  3. CommandField列:显示用来执行选择,编辑或删除操作的预定义命令按钮。
  4. ImageField列:在GridView控件所在的表格中显示图片列。
  5. HyperLinkField列:允许将所绑定的数据以超链接的形式显示出来。开发人员可自定义绑定超连接的显示文字,超链接的URL以及打开窗口的方式等。
  6. ButtonField列:为GridView控件创建命令按钮,开发人员可以通过按钮来操作其所在行的数据。
  7. TemplateField列:允许以模版式自定义数据绑定列的内容。

实验如何在在GridView控件中添加BoundField列,从而进行数据绑定实例如下:

添加一个Index.aspx页面,添加一个GridView控件和一个SqlDataSoure控件。如下图:

澳门新葡萄京官网注册 10要对GridView控件经行自定义列,要先取消GridView自动产生字段的功能。把GridView的AutoGeneraterColums属性设置为false就可以了。

然后设置SqlDataSource控件配置数据源,并将SqlDataSource控件指定给GridView控件的DataSourceID属性。如下图:

澳门新葡萄京官网注册 11然后编辑GridView控件,如下图:

澳门新葡萄京官网注册 12

看下运行结果,如下图:

澳门新葡萄京官网注册 13

使用GridView控件分页显示数据

GridView控件有一个内置的分页控件,可以支持基本的分页功能。启用分页需要设置AllowPaging,PageSize属性。如下图:

澳门新葡萄京官网注册 14

然后需要写一个GridView控件的PageIndexChanging事件,写法如下:

澳门新葡萄京官网注册 15澳门新葡萄京官网注册 16

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace DataShowApplication{    public partial class IndexO : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {        }        protected void GridViewOne_PageIndexChanging(object sender, GridViewPageEventArgs e)         {            //获取当前分页的索引值            this.GridViewOne.PageIndex = e.NewPageIndex;            this.GridViewOne.DataBind();        }    }}

View Code

写完运行如下结果:

澳门新葡萄京官网注册 17澳门新葡萄京官网注册 18

GridView在编程中的一点高级应用

GridView中其实还包含了一族好玩的东西,就是RowEdtiting,RowUpdating,RowCancelingEdit事件,这些事件可以帮助我们实现编辑,更新和取消操作,还有一个RowDeleting事件,可以实现删除某条记录的操作。下面可以演示过程:

1.新建一个IndexTow.aspx页面放一个GridView控件进去,然后利用GridView控件的CommandField列的选择,编辑,取消和删除按钮。

澳门新葡萄京官网注册 19现在开始我们的操作,先绑定数据。

当然加载的时候我们就应该绑定上数据,绑定数据代码如下:

using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace DataShowApplication{    public partial class IndexTwo : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                //调用绑定方法                this.BindData();            }        }        //写一个绑定数据的方法        private void BindData()        {            //老一套连接字符串先走起            string strconn = @"Data Source=.CENA;Initial Catalog=Asp.net;Persist Security Info=True;User ID=sa;Password=123456";            //写SQL  有SQL语句了才能有数据(其实标准的SQL语句基本都是大写的看大牛一般都那样写)            string sqlquery = "select * from DemoStu";            //准备好了就要创建数据库连接对象            SqlConnection connection = new SqlConnection;            //然后在搞一个数据适配器            SqlDataAdapter da = new SqlDataAdapter(sqlquery, strconn);            //继续创建数据集合            DataSet ds = new DataSet();            //填充数据集            da.Fill;            //设置咱GridView控件数据源为创建的数据集ds            this.GridViewTwo.DataSource = ds;            //将数据库表中的主键字段放入GridView控件的DataKeyNames属性中            this.GridViewTwo.DataKeyNames = new string[] { "ID" };            //绑定数据库中的数据            this.GridViewTwo.DataBind();        }    }}

绑定好数据后,我们运行结果如下:

澳门新葡萄京官网注册 20然后我们继续完善,先来搞编辑,当我们点击编辑时,应该触发GridView控件的RowEditing事件,这时我们的编辑项索引设置应当为当前选择的项的索引,然后从新绑定数据。代码如下:

澳门新葡萄京官网注册 21澳门新葡萄京官网注册 22

using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace DataShowApplication{    public partial class IndexTwo : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                //调用绑定方法                this.BindData();            }        }        //写一个绑定数据的方法        private void BindData()        {            //老一套连接字符串先走起            string strconn = @"Data Source=.CENA;Initial Catalog=Asp.net;Persist Security Info=True;User ID=sa;Password=123456";            //写SQL  有SQL语句了才能有数据(其实标准的SQL语句基本都是大写的看大牛一般都那样写)            string sqlquery = "select * from DemoStu";            //准备好了就要创建数据库连接对象            SqlConnection connection = new SqlConnection;            //然后在搞一个数据适配器            SqlDataAdapter da = new SqlDataAdapter(sqlquery, strconn);            //继续创建数据集合            DataSet ds = new DataSet();            //填充数据集            da.Fill;            //设置咱GridView控件数据源为创建的数据集ds            this.GridViewTwo.DataSource = ds;            //将数据库表中的主键字段放入GridView控件的DataKeyNames属性中            this.GridViewTwo.DataKeyNames = new string[] { "ID" };            //绑定数据库中的数据            this.GridViewTwo.DataBind();        }        protected void RowEditing(object sender, GridViewEditEventArgs e)         {            //设置索引值            this.GridViewTwo.EditIndex = e.NewEditIndex;            this.BindData();        }        protected void GridViewTwo_RowUpdating(object sender, GridViewUpdatedEventArgs e)        {            //取得编辑行的关键字段的值            string ID = this.GridViewTwo.DataKeys[e.RowIndex].Value.ToString();            //取得文本框中输入的内容            string Name = (this.GridViewTwo.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString;            string Price = (this.GridViewTwo.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString;            string time = (this.GridViewTwo.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString;            //定义更新操作的SQL语句            string update_sql = "update DemoStu set Name='" + Name + "',Price='" + Price + "',Time='" + time + "' where id='" + ID + "'";            bool update = ExceSQL(update_sql);//调用ExceSQL执行更新操作            if             {                Response.Write("<script language=javascript>alert</script>");                //设置GridView控件的编辑项的索引为-1,即取消编辑                this.GridViewTwo.EditIndex = -1;                BindData();            }            else            {                Response.Write("<script language=javascript>alert;</script>");            }        }        protected void GridViewTwo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)         {            //设置GridView控件的编辑项的索引为-1,即取消编辑            this.GridViewTwo.EditIndex = -1;            BindData();        }        protected void GridViewTwo_RowDeleting(object sender, GridViewDeletedEventArgs e)        {            string delete_sql = "delete from DemoStu where id='" + this.GridViewTwo.DataKeys[e.RowIndex].Value.ToString() + "'";            bool delete = ExceSQL(delete_sql);//调用ExceSQL执行删除操作            if             {                Response.Write("<script language=javascript>alert</script>");                BindData();//调用自定义方法重新绑定控件中数据            }            else            {                Response.Write("<script language=javascript>alert</script>");            }        }        /// <summary>        /// 执行SQL语句的方法        /// </summary>        /// <param name="update_sql"></param>        /// <returns></returns>        private bool ExceSQL(string update_sql)        {            //定义数据库连接字符串            string strCon = @"Data Source=.CENA;Initial Catalog=Asp.net;Persist Security Info=True;User ID=sa;Password=123456";            //创建数据库连接对象            SqlConnection sqlcon = new SqlConnection;            SqlCommand sqlcom = new SqlCommand(update_sql, sqlcon);            try            {                if (sqlcon.State == System.Data.ConnectionState.Closed)//判断数据库是否为连连状态                { sqlcon.Open(); }                sqlcom.ExecuteNonQuery();//执行SQL语句                return true;            }            catch            {                return false;            }            finally            {                sqlcon.Close();//关闭数据库连接            }        }    }}

View Code

关于GridView就简单的介绍到这里,跟我一样的小虾可以自己动手去实验一下。。。。。

后面在继续初始学习我们的另外2个常用数据控件分别是DataList控件,ListView控件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注