2016.4.21
1、数据绑定到页面中 <%#表达式%>
表达式只能为有效的数据绑定表达式,写入代码将得到一个错误。
支持单值数据绑定的控件允许使用数据绑定表达式绑定它们的部分属性,用分隔符包括表达式在页面的.aspx标记部分输入,不是在后台代码中。
计算这样的表达式,需要在代码中调用Page.DataBind()方法,如果不调用,表达式不被填入,在页面上呈现为HTML时被丢弃。
2、绑定方法
Eval()方法是静态单项(只读)的方法,仅提供读取功能。
Bind()方法支持读/写功能,提供双向绑定(读取/写回数据库)功能
3、数据库操作
4、方法提示信息
1 /// <summary> 2 /// 此方法实现数据绑定到GridView中 3 /// </summary> 4 /// <param name="dl">要绑定的控件</param> 5 /// <param name="SqlCom">要执行的SQL语句</param> 6 /// <returns></returns>
5、DataTable对象表示包含内存中关系数据的一个表,可以独立创建和使用,也可以由其他NET Framework对象使用。最常见的情况是作为DataSet对象的成员使用。将一个DataTable对象作为成员添加到一个DataSet对象的Tables集合中后,不能在将其添加到任何其他DataSet对象的表集合中。
1 double interest;//利息 2 double total;//本息和 3 protected void Page_Load(object sender, EventArgs e) 4 { 5 if (!IsPostBack) 6 { 7 DataTable dt = new DataTable();//创建DataTable对象 8 DataRow dr; 9 //创建TataTable中的DataColumn列,即构造DataTable对象的骨架 10 dt.Columns.Add(new DataColumn("月份", typeof(int))); 11 dt.Columns.Add(new DataColumn("现存款数", typeof(float))); 12 dt.Columns.Add(new DataColumn("利息", typeof(float))); 13 dt.Columns.Add(new DataColumn("本息和", typeof(float))); 14 for (int i = 0; i <= 11; i++) 15 { 16 if (!(i > 0)) 17 { 18 interest = 0; 19 total = 500; 20 } 21 else 22 { 23 interest = (total * 0.05); 24 total = (500 + interest + total); 25 } 26 dr = dt.NewRow(); 27 dr[0] = i + 1; 28 dr[1] = 500; 29 dr[2] = interest; 30 dr[3] = total; 31 dt.Rows.Add(dr); 32 } 33 GridView1.DataSource = dt; 34 GridView1.DataBind(); 35 }
6.GridView控件分页功能
AllowPaging属性设置是否允许分页
PageSize属性设置每行显示的数据数
PageIndexChanging事件:1 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 2 { 3 GridView1.PageIndex = e.NewPageIndex;//获取当前分页的索引值 4 GridView1.DataBind();//重新绑定数据 5 }
7、RowDataBound事件:呈现GridView控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行绑定到GridView控件中的数据以后触发
SelectedIndexChanging事件:该事件发生在单机某一行的“选择”按钮以后,GridView控件对响应的选择操作进行处理前。
2016.4.22
1、使用SqlDataAdapter(数据适配器)时不用写Open方法打开数据库连接
2016.4.25
2、ITemplate 接口:创建一个模版
重写InstantiateIn方法,处理行类型
1 public class GridViewTemplate : ITemplate//定义一个继承自ITemplate接口的类 2 { 3 private DataControlRowType dcrType; 4 private string columnName; 5 public GridViewTemplate(DataControlRowType type, string colname) 6 { 7 dcrType = type; 8 columnName = colname; 9 } 10 public void InstantiateIn(System.Web.UI.Control container) 11 { 12 switch (dcrType) 13 { 14 case DataControlRowType.Header: 15 Literal literal = new Literal(); 16 literal.Text = columnName; 17 container.Controls.Add(literal); 18 break; 19 case DataControlRowType.DataRow: 20 DropDownList ddl = new DropDownList(); 21 ddl.ID = "dropdownlist"; 22 ddl.AppendDataBoundItems = true; 23 ddl.Items.Add(new ListItem("-----请选择------", "")); 24 ddl.Items.Add(new ListItem("11111", "98")); 25 ddl.Items.Add(new ListItem("22222", "368")); 26 ddl.Items.Add(new ListItem("33333", "698")); 27 container.Controls.Add(ddl); 28 break; 29 default: 30 break; 31 } 32 } 33
3、GridView控件自带的排序功能:
AllowSorting属性:是否启用排序功能
SortDirection属性:获取正在排序的列的排序方向
SortExpression属性:获取与正在排序的列关联的排序表达式
Soring事件:单击超链接时,在进行处理之前发生
Sored事件:单击超链接时,在进行处理之后发生
Sored事件:单击超链接时,在进行处理之后发生
4、用视图作为数据源
1 SqlDataAdapter da = new SqlDataAdapter(sqlstr, strCon); 2 DataSet ds = new DataSet(); 3 da.Fill(ds); 4 DataView dv = new DataView(ds.Tables[0]);//定义用于排序操作的表视图 5 dv.Sort = ViewState["sortExp"].ToString() + " " + ViewState["sortDir"].ToString();//注意,此处一定要用一个空格分开 6 GVpositionrecods.DataSource = dv;//将查询的表视图数据作为数据源 7 this.GVpositionrecods.DataBind();//绑定GridView控件数据
2016.4.25
1、SqlCommand.Parameters.add()方法
表示SqlCommand的参数,添加参数到参数集,add里面的第一个参数是要添加的参数名,第二个参数是参数的数据类型
Parameters的作用就是把存储过程执行结束后得到的参数传到程序里
Parameters的作用就是把存储过程执行结束后得到的参数传到程序里
comm.Parameters.Add(new SqlParameter("@ID", SqlDbType.Int, 4));
第一个是参数名,第二个是参数类型,第三个是长度
1 2 string strSql = "delete from tb_OrderForm where 产品编号=@产品编号";//定义带参数的删除语句 3 if (sqlcon.State.Equals(ConnectionState.Closed)) 4 sqlcon.Open();//打开数据加连接 5 sqlcom = new SqlCommand(strSql, sqlcon);//创建执行删除操作的命令对象 6 SqlParameter prame = new SqlParameter("@产品编号", SqlDbType.Int, 4);//定义参数 7 sqlcom.Parameters.Add(prame);//添加参数 8 sqlcom.Parameters["@产品编号"].Value = GridView1.DataKeys[i].Value.ToString();//参数赋值
2016.4.26
1、PagedDataSource对象实现分页
1 PagedDataSource ps = new PagedDataSource();//实例化PagedDataSource对象 2 ps.DataSource = ds.Tables["SoftView"].DefaultView;//设置数据源 3 ps.AllowPaging = true; //是否可以分页 4 ps.PageSize = 2; //显示的数量 5 ps.CurrentPageIndex = curpage - 1; //取得当前页的页码 6 this.lnkbtnUp.Enabled = true; 7 this.lnkbtnNext.Enabled = true; 8 this.lnkbtnBack.Enabled = true; 9 this.lnkbtnOne.Enabled = true; 10 if (curpage == 1) 11 { 12 this.lnkbtnOne.Enabled = false;//不显示第一页按钮 13 this.lnkbtnOne.ForeColor = System.Drawing.Color.Black; 14 this.lnkbtnUp.Enabled = false;//不显示上一页按钮 15 this.lnkbtnUp.ForeColor = System.Drawing.Color.Black; 16 } 17 if (curpage == ps.PageCount) 18 { 19 this.lnkbtnNext.Enabled = false;//不显示下一页 20 this.lnkbtnNext.ForeColor = System.Drawing.Color.Black; 21 this.lnkbtnBack.Enabled = false;//不显示最后一页 22 this.lnkbtnBack.ForeColor = System.Drawing.Color.Black; 23 } 24 this.DataList1.DataSource = ps;//设置数据源 25 this.DataList1.DataKeyField = "id";//指定主键值 26 this.DataList1.DataBind();//绑定控件 27 28
3、CommandName="update" 用关键词触发Command事件
4、提供文件下载
1 SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["strCon"].ConnectionString); 2 con1.Open(); 3 SqlCommand com1 = new SqlCommand("select UpFileServerLoad from tb_SoftwareInfo where id=" + Request["id"], con1); 4 string strUrl = Convert.ToString(com1.ExecuteScalar()); 5 Response.Redirect(strUrl);
5、执行SQL语句修改数据库
1 con.Open();//打开数据库连接 2 string SqlStr = "update tb_Affiche set dc='" + this.TextBox1.Text + "' where ID=1";//定义执行更新操作的SQL语句 3 SqlCommand com = new SqlCommand(SqlStr, con);//创建命令对象 4 com.ExecuteNonQuery();//执行修改命令