文档库 最新最全的文档下载
当前位置:文档库 › C# aspx 数据绑定方法集

C# aspx 数据绑定方法集

C# aspx 数据绑定方法集
C# aspx 数据绑定方法集

C# aspx 数据绑定方法集收藏

Eval("")和Bind("")这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持

https://www.wendangku.net/doc/308862117.html, 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval 一样可以接受一个可选的格式化字符串参数。缩短的Eval语法与DataBinder.Eval的不同点在于,Eval 会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval 需要使用参数来指定容器。由于这个原因,Eval只能在数据绑定控件的模板中使用,而不能用于Page (页面)层。当然,https://www.wendangku.net/doc/308862117.html, 2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval 语法的环境中使用它。

下面的例子演示了如何使用新的简化的Eval数据绑定语法绑定到DataList数据项模板(ItemTemplate)中的Image、Label和HyperLink控件。

/>

数据绑定也可以作为控件的主题定义(theme definition)的一部分,这样我们就可以通过改变主题来随意地改变模板化控件的布局和外观。但是Theme(主题)模板中只能使用Eval(或者后面讨论的Bind)。绑定到任意的用户代码是被禁止的。

1.DataBinder.Eval用法

//显示二位小数

<%# DataBinder.Eval(Container.DataItem,"UnitPrice","${0:F2}") %>

//{0:G}代表显示True或False

ImageUrl='<%# DataBinder.Eval(Container.DataItem,"Discontinued","~/images/{0:G}.gif") %>' />

//转换类型

((string)DataBinder.Eval(Container,"DataItem.P_SHIP_TIME_SBM8")).Substring(4,4)

{0:d} 日期只显示年月日

{0:yyyy-mm-dd} 按格式显示年月日

{0:c} 货币样式

2.Container.DataItem用法.

在绑定数据时经常会用到这个句程序:<%# DataBinder.Eval

(Container.DataItem,"xxxx")%>或者<%# DataBinder.Eval

(Container,"DataItem.xxxx")%>

还有一种,而且微软也说这种方法的效率要比以上两种高。

<%# ((DataRowView)Container.DataItem)["xxxx"]%>

很有用的,这样可以在前台页面做好多事情了。

还要记住要这样用必须要在前台页面导入名称空间System.Data,否则会生成错误信息。

<%@ Import namespace="System.Data" %>

这种用法其实和<%# ((DictionaryEntry)Container.DataItem).Key%>是一个道理。

关键是Container这个东西,它的名称空间是https://www.wendangku.net/doc/308862117.html,ponentModel。

3.DataBinder.Eval和Container.DataItem的区别

DataBinder.Eval(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别?

DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写,但是它使用的方式是通过Reflection等开销比较大的方法来达到易用性,因此其性能并不是最好的。而Container则根本不是任何一个静态的对象或方法,它是https://www.wendangku.net/doc/308862117.html,页面编译器在数据绑定事件处理程序内部声明的局部变量,其类型是可以进行数据绑定的控件的数据容器类型(如在Repeater内部的数据绑定容器叫RepeaterItem),在这些容器类中基本都有DataItem属性,因此你可以写Container.DataItem,这个属性返回的是你正在被绑定的数据源中的那个数据项。如果你的数据源是DataTable,则这个数据项的类型实际是DataRowView。

引用:https://www.wendangku.net/doc/308862117.html,/yangjunwl/articles/1120560.html

数据绑定表达式必须包含在<%#和%>字符之间。格式如下:

或者如下:

<%# data-binding expression %>

https://www.wendangku.net/doc/308862117.html, 支持分层数据绑定模型,数据绑定表达式使用Eval 和Bind 方法将数据绑定到控件,并将更改提交回数据库。

Eval 方法是静态单向(只读)方法,所以Eval 函数用于单向(只读)绑定,该方法采用数据字段的值作为参数并将其作为字符串返回。

Bind 方法支持读/写功能,所以Bind 函数用于双向(可更新)绑定。该方法可以检索数据绑定控件的值并将任何更改提交回数据库。

XPath 方法支持对XML类型的数据源提供支持。

数据绑定表达式都可以出现在页面的哪个位置呢?

一,可以将数据绑定表达式包含在服务器控件或者普通的html元素的开始标记中属性名/属性值对的值侧。例如:


注意条款:此时数据的绑顶表达式可以是一个变量,也可以是一个带返回值的C#或者https://www.wendangku.net/doc/308862117.html,方法,还可以是某个控件的某个属性的值,也可以是C#或者https://www.wendangku.net/doc/308862117.html,对象的某个字段或者属性的值等等。当然也可以直接就是一个字符串,例如"hello"。

如果此时的数据绑定表达式是Eval("数据库中某个表的某个字段")等,那么必须把TextBox1放在某个循环显示的控件的模板中才正确,否则会提示:Eval()、XPath() 和Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。其实就是想让你把TextBox1放在像Repeater,DataList,GridView这样的控件的模板中。

二,数据绑定绑定表达式包含在在页面中的任何位置。例如:

<%#Eval("数据绑定表达式1")%>

<%#Eval("数据绑定表达式2")%>

同样遵循"一"的注意条款。

如果此时的数据绑定表达式是Eval("数据库中某个表的某个字段")等,那么必须把<%#Eval("数据绑定表达式1")%> <%#Eval("数据绑定表达式2")%> 放在像Repeater,DataList,GridView这样的控件的模板中。

三,可以将数据绑定表达式包含在Javascript代码中,从而实现在Javascript中调用C#或者https://www.wendangku.net/doc/308862117.html,的方法。例如:

Deafult2.aspx:@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

无标题页

Default2.cs: System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class Default2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

Page.DataBind();//方法有返回值的要先绑定,才能实现Javascript调用c#的方法!

}

public string CSharpToJavascript()

{

return"Javascript调用c#的方法!";

}

}

数据绑定表达式都可以是什么类型呢?

1,可以是一个变量

例如:

2,可以是服务器控件的属性值

例如:

3,可以是一个数组等集合对象

例如把一个数组绑定到列表控件,例如ListBox等,或者Repeater,DataList,GridView这样的控件等,此时只需要把属性DataSource='<%# 数组名%>' 。

4,可以是一个表达式

例如:Person是一个对象,Name和City是它的2个属性,则数据绑定表达式可以这样写:

<%#(https://www.wendangku.net/doc/308862117.html, +"" + Person.City)%>。

5,可以是一个方法

例如:<%#GetUserName()%>。GetUserName()是一个已经定义的C#方法,一般要求有返回值。

6,可以是用Eval,DateBind.Eval取得的数据表的字段,这个是最常见的了,不再举例。

注意:如果数据绑定表达式作为属性的值,只要数据绑定表达式中没有出现双引号,那么<%#数据绑定表达式%>的最外层用双引号或者单引号都可以。如果数据绑定表达式中出现双引号,则<%#数据绑定表达式%>的最外层最好要用单引号。

与数据库有关的数据绑定表达式的常用方法?

1,<%#DataBind.Eval(Container.DataItem,"字段名")%>

<%#DataBind.Eval(Container.DataItem,"字段名","{0:c}") %>

还有2种不常用的:

<%# DataBinder.Eval(Container,"DataItem.字段名")%>

<%# DataBinder.Eval(Container,"DataItem.字段名",{0:c})%>

Container.DataItem相当于数据库中某个表中的一行记录,而一行可以有很多列。

最后一个参数和String.Format的形式一样。例如c代表货币,p代表百分号,d代表短日期格式显示,f代表浮点数现实,f3代表小数点后三为,一次类推。

使用三目运算符?:的例子:

<%# DataBinder.Eval(Container.DataItem,"字段名").ToString().Trim().Length>16?DataBinder.Eval(Container.DataItem,"字段名").ToString().Trim().Substring(0,16):DataBinder.Eval(Container.DataItem,"字段名").ToString().Trim() %> 2,<%#Eval("字段名")%>

<%#Eval("字段名","{0:c}")%>

.NET 2.0新出现的一个方法。和DataBind.Eval()等价。

最后一个参数和String.Format的形式一样。例如c代表货币,p代表百分号,d代表短日期格式显示,f代表浮点数现实,f3代表小数点后三位,一次类推。

使用三目运算符的例子:

<%#(Eval("性别")).ToString() =="True"?"男":"女"%>

性别字段类型为:是/否(Access),bit(sql server)

使用方法调用的例子:

<%# GetUserPhoto(Eval("PhotoPath")) %>

GetUserPhoto()的定义:

string GetUserPhoto(object photoPath){

if (photoPath == DBNull.Value)<%#((DataRowView)Container.DataItem)["字段名"] %>

{

return"";

}

else

{

return"";

}

}

3,<%#((DataRowView)Container.DataItem)["字段名"] %>

<%# string.Format("{0:c}", ((DataRowView)Container.DataItem)["字段名"])%> 用String.Format方法设定字段的显示样式。例如c代表货币,p代表百分号,d代表短日期格式显示,f 代表浮点数现实,f3代表小数点后三为,一次类推。

类型转换例子:<%# (int)((DataRowView)Container.DataItem)["字段名1"]*(int) ((DataRowView)Container.DataItem)["字段名2"]%> 意思是2个字段相乘。

上面三种绑定方法的效率:Eval方法执行时候会调用DataBinder.Eval方法,DataBinder.Eval方法在运行时使用反射执行后期绑定计算,会导致性能明显下降。所以会导致性能明显下降。所以三者中<%#((DataRowView)Container.DataItem) ["字段名"] %>的性能最好。

本文来自CSDN博客,转载请标明出处:https://www.wendangku.net/doc/308862117.html,/superbirds/archive/2009/12/25/5075497.aspx 注意

注意

注意

Text='<%# DateTime.Now.ToString() %>' />

上述代码实例的执行结果如图5.1所示。

图5.1 简单数据绑定技术

5.1.2 复杂数据绑定技术

复杂数据绑定技术能够将一组或一列值绑定到指定的控件,这些控件通常被称为数据绑定控件,如ListBox、DropDownList、Repeater、GridView等控件。这些数据绑定控件可以分为两类:列表控件和和迭代控件。其中,迭代控件包括Rep eater、DataList和GridView等控件(这些控件将在后面进行详细介绍)。

列表控件包括5个控件:BulletedList、CheckBoxList、RadioButtonList、Li stBox和DropDownList,它们都是从BaseDataBoundControl类派生。然而,列表控件并不是直接派生于BaseDataBoundControl类,而是直接派生于ListCont rol类,并且,ListControl类直接继承于DataBoundControl类,DataBoundCo ntrol类直接继承于BaseDataBoundControl类。上述类之间的继承关系如图5. 2所示。

BaseDataBoundControl类包含两个与数据绑定相关的属性:DataSource和Data SourceID。DataBoundControl类包含了一个与数据绑定相关的属性:DataMembe r。这3个属性的描述如表5-1所示。

表5-1 BaseDataBoundControl和DataBoundControl类与数据绑定相关的属性属性描述

注意

{

if(lbColor.SelectedIndex > -1)

{ ///把控件的前景颜色设置为选择项的颜色

lbColor.ForeColor = System.Drawing.Color.FromName(

lbColor.SelectedItem.Text);

}

}

复杂数据绑定

AutoPostBack="True"

OnSelectedIndexChanged="lbColor_SelectedIndexChanged">

上述代码实例的执行结果如图5.3所示。

图5.3 复杂数据绑定技术

5.1.3 Eval()和Bind()方法

注意

5.2 数据源控件

https://www.wendangku.net/doc/308862117.html, 2.0新增了一种被称为数据源控件的控件。这些控件不但可以使用数据库(如SQL Server、Access、Oracle等)、XML文件或中间层业务对象作为数据源;而且还可以连接到数据源,并从其中检索和修改数据。数据源控件共包括

注意

注意

在上述代码实例中,SqlDataSoruceCtl.aspx页面创建lbUser控件的数据源的操作步骤如下。

(1)选择lbUser控件,单击该控件的快捷菜单中的【显示智能标记】命令,如图5.5所示。

(2)单击【选择数据源】链接,弹出【数据源配置向导】对话框,如图5.6所示。

(3)在【选择数据源】下拉列表中选择【新建数据源】选项,弹出【数据源配置向导】对话框,如图5.7所示。在该对话框中,用户可以选择数据源的类型。在此,笔者选择了【数据库】类型,并设置数据源ID值为“myDSUser”。

图5.5 显示lbUser控件的智能标记图5.6 【数据源配置向导】对话框(4)单击【确定】按钮,弹出【配置数据源 - myDSUser】对话框,如图5.8

所示。在该对话框中,用户可以选择数据源的连接字符串。在此,笔者选择的数据源字符串为“WEB2ASPNET2DBConnectionString”。

(5)单击【下一步】按钮,弹出如图5.9所示对话框。在该对话框中,用户可以配置检索数据的Select语句。在此,笔者选择了用户表User,并检索了ID、UserName、E-mail和CreateDate 4个字段的数据。

图5.7 选择数据源的类型图5.8 选择数据连接

(6)单击【下一步】按钮,弹出如图5.10所示对话框。在该对话框中,用户可以测试步骤(5)中配置的Select语句。在此,笔者单击【测试查询】按钮,网格中显示了检索结果。

图5.9 配置Select语句图5.10 测试查询

(7)单击【完成】按钮,弹出【数据源配置向导】对话框,如图5.11所示。在该对话框中,用户可以选择数据源。在此,笔者选择了【myDSUser】数据源,并设置数据字段为“UserName”、值字段为“ID”。单击【确定】按钮,可以完成该数据源的配置过程。

(8)选择数据源控件myDSUser,并单击其【属性】面板中的【SelectQuery】中的【…】按钮,弹出【命令和参数编辑器】对话框,如图5.12所示。

注意注意

数据绑定技术总结

数据绑定技术总结 关于数据绑定技术,现在做如下总结: 先看如下代码: //数据绑定 protected void DataBind() { if (type == 0) { string connectionstring = @"Server=.;database=db_user;uid=sa;pwd=123456"; SqlConnection myconnection = new SqlConnection(connectionstring); //链接数据库 myconnection.Open(); SqlDataAdapter da = new SqlDataAdapter("select * from Day6tb_user order by u_ID asc", myconnection); DataTable dt = new DataTable(); da.Fill(dt); gvlist.DataSource = dt; gvlist.DataBind();//调用DataBind放法 myconnection.Close(); } else { string connectionstring = @"Server=.;database=db_user;uid=sa;pwd=123456"; SqlConnection myconnection = new SqlConnection(connectionstring); myconnection.Open(); SqlCommand cmd = new SqlCommand("select * from Day6tb_user where u_Name like '%'+@name+'%' order by u_ID asc",myconnection);

TreeView绑定SQL数据源

使用TreeView绑定SQL数据源 这里采用了在页面一loading就把数据绑到TreeView的各节点的方式,而不是在展开时再作子节点的绑定,因此在点击父节点时就不会有刷新的感觉了。呵呵,代码并没优化....... aspx页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 树形节点绑定

.cs文件: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindTree(); } } public void BindTree() { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CreativeConnectionString"].Connectio

数据库查询方法

数据查询(检索) 一、简单查询(单张表) 字段筛选输出全部列select * select 输出部分列select 列名… 记录筛选比较运算符> < = != !> !< >= <= <> Where 逻辑运算符and or 范围运算符Between小值and 大值 列表运算符In(值1,值2,….) 模糊匹配运算符Like ‘通配表达式’ 空值运算符is null 关键字辅助distinct select distinct 列名… Top select top n 列名… 二、高级查询(多张表) 一、简单查询 1、基本语法格式 结合实现的查询功能 1)输出表的全部列(全部行、列) 查找所有客户的基本信息(查看客户信息表) use spgl go select客户编号,客户姓名,联系电话,地址,邮箱 from客户信息表

use spgl go select* from客户信息表

2)输出表的部分列 查找所有客户的姓名(查看客户信息表的姓名列) select客户姓名 from客户信息表 查找所有商品的编号(查看商品信息表的商品编 号列) select商品编号 from商品信息表

3)输出表中满足条件的记录 --查找所有单位是“个”的商品的编号(查看商品信息表的商品编号列)select商品编号 from商品信息表 where商品单位='个'

查找11110001商品的销售信息(查看销售信息表 的商品编号为指定值的这些行,相当于进行条件 筛选) select* from销售信息表 where商品编号=11110001

--查找11110001和11110003商品的销售信息select* from销售信息表 where商品编号=11110001 or商品编号=11110003

第20次课第六章 数据绑定技术基础

新课导入: 复习上次课所讲的内容。 教学过程: 第六章数据绑定技术 6.1 绑定技术基础 在https://www.wendangku.net/doc/308862117.html,中,开发人员可以使用声明式的语法对控件进行数据绑定,而且大多数服务器控件都提供了对数据绑定的支持。数据绑定表达式的语法格式为: <%#数据源%> 数据绑定允许在控件的声明代码中为控件的某个属性指定一个绑定表达式,从而将表达式的内容与该控件进行绑定。 6.1.1 简单绑定 简单绑定一般只绑定单个值到某个控件,所以数据源可以是表达式、变量、方法、控件的属性等。 1.当绑定到Label、TextBox等控件时,需要将绑定表达式赋值给控件的Text属性: Text=’<%#数据源%>’ 2.采用数据绑定技术还可以使用javascript调用C#定义的变量和方法,此时可以将绑定表达式赋值给一个javascript变量: var a=’<%#数据源%>’ 简单绑定需要注意以下几点: (1).数据绑定表达式只有在父控件容器中的DataBind()方法被调用时才会被执行。DataBind()是Page和所有服务器控件的方法,通常在Page_Load事件中被调用。可将上例中的Page.DataBind();语句注释掉,再看一下运行结果。 (2).绑定变量和方法的返回值时,该变量和方法必须声明为public或protected类型,否则会提示错误:“╳╳╳不可访问”,因为它受保护级别限制。 (3).如果数据绑定表达式中使用了双引号,则<%#数据源%>的最外层要用单引号,否则会提示“服务器标记的格式不正确”的错误信息,其他情况下使用双引号或者单引号都可以。将下面语句的单引号改成双引号即可得到印证。 ’>

SQL数据库快捷键大全

快捷键·F5 这个恐怕是最常用的快捷键了,用来代替那个“!执行”按钮,写完SQL语句后手不用离开键盘。虽然没什么技术含量,但不会用的人八成是菜鸟。 快捷键·CTRL+C/V 复制/粘贴。COPY流程序员神器,安全环保无污染。不多说,只会右键的同学直接定性为菜鸟。MS所有文本编辑器通用。 快捷键·↑↓←→ 上下左右。功能全人类都知道。另外据验证,在SSMS启动时快速输入↑↑↓↓←→←→BABA没有加30条命效果。MS所有文本编辑器通用。 快捷键·SHIFT+↑↓←→ 移动的同时选中移动范围内的代码,配合F5和其它命令用。MS所有文本编辑器通用。 快捷键·CTRL+↑↓ 不移动光标,上下滑动查询窗口。效果等同按竖行滑动条拖。全键盘流同学和装B流同学可用。 快捷键·CTRL+←→ 行内跳词移动光标。自己写个SELECT * FROM TB再试试这个就知道了。MS所有文本编辑器通用。 快捷键·CTRL+A 全选所有文本。用来清空编辑界面,或复制本界面全部语句时常用。MS所有文本编辑器通用。 快捷键·HOME/END 光标移动至本行首/尾。使用以下连招可选中本行文字:HOME -- SHIFT+END 或END -- SHIFT+HOME。MS所有文本编辑器通用。 快捷键·CTRL+HOME/END 光标移动至全文首/尾。按住CTRL加上面那个连招能选中所有文字,效果同CTRL+A。另外在浏览超长SQL时,用滚轮会慢,用CTRL+END看最后一行的内容比较快。MS所有文本编辑器通用。 快捷键·TAB 不选中文本或选中部分文本时是添加一个制表符,选中整行或多行代码时按下是全部增加缩进。 快捷键·SHIFT+TAB 不选中整行时无效果,选中整行或多行代码时是全部减少缩进。和上面那个功能一起练熟多用能让代码更有层次感。

Access窗体操作技巧题

Access窗体操作题 2、考生文件夹下存在一个数据库文件"Access3.mdb",里面已经设计好窗体对象"教师"。试在此基础上按照以下要求补充窗体设计: (1)在窗体的窗体页眉节区位置添加一个标签控件,其名称为"bTitle",标题显示为"教师奖励信息";(2)在主体节区位置添加一个选项组控件,将其命名为"opt",选项组标签显示内容为"奖励",名称为"bopt"; (3)在选项组内放置二个单选按钮控件,选项按钮分别命名为"opt1"和"opt2",选项按钮标签显示内容分别为"有"和"无",名称分别为"bopt1"和"bopt2"。 (4)在窗体页脚节区位置添加两个命令按钮,分别命名为"bOk"和"bQuit",按钮标题分别为"确定"和"退出"; (5)将窗体标题设置为"教师奖励信息"。 注意:不允许修改窗体对象"教师"中已设置好的属性。 等级:3 难度:3 知识点:access知识点/窗体题 3、考生文件夹下存在一个数据库文件"Access3.mdb",里面已经设计好窗体对象"教师"。试在此基础上按照一下要求补充窗体设计: (1)在窗体的窗体页眉节区位置添加一个标签控件,其名称为"bTitle",标题显示为"教师基本信息输出";(2)在主体节区中"年龄"标签右侧的文本框显示内容设置为"年龄"字段值,并将文本框名称更名为"tAge";(3)在主体节区添加一个标签控件,该控件放置在距左边0.1厘米、距上边5.0厘米,标签显示内容为"出生地",名称为"bMem"; (4)在窗体页脚节区位置添加两个命令按钮,分别命名为"bOk"和"bQuit",按钮标题分别为"确定"和"退出"; (5)将窗体标题设置为"教师基本信息"。 注意:不允许修改窗体对象"教师"中未涉及的控件和属性。

采用HierarchicalDataTemplate数据模板和treeview在MVVM模式下实现行政区划树

摘要:采用HierarchicalDataTemplate数据模板和treeview在MVVM模式下实现行政区划树, 支持勾选。勾选父节点,子节点回全部自动勾选;子节点部分勾选时,父节点半勾选;子节点全部勾选时,父节点勾选。反之亦然。 HierarchicalDataTemplate是分层数据模板,通常用于tree,menu等层级控件。 HierarchicalDataTemplate的ItemsSource属性绑定下一级数据源。 Model为行政区数据实体类,通常访问数据库获取数据并构建对象。 ViewModel为界面的抽象模型,表示界面的数据和行为,是Model和View的桥梁。 view就是界面。 一、代码 1、Model using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace WpfHierarchicalTemplate { public class District { public int ID { get; set; } public string Xzqhdm { get; set; }//行政区划代码 public string Xzqhmc { get; set; }//行政区划名称 public int Level { get; set; }//级别,0全国,1省,2地市,3县,4,乡镇,5,村 public IList Children { get; set; } public District Parent { get; set; } } } 2、ViewModel using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.ObjectModel; using System.Windows.Media; using System.Windows.Media.Imaging; namespace WpfHierarchicalTemplate { publicclass DistrictNodeViewModel :ModelCommon.NotifyObject { privatebool? isSelected = false; publicbool? IsSelected { get{ return isSelected; } set { isSelected = value; RaisePropertyChanged("IsSelected");

C# 里TreeView绑定数据库实现分类

C# 里TreeView绑定数据库实现分类 分类:导航控件TreeView/Menu/SiteMapPath 2010-03-22 21:33 45人阅读评论(0) 收藏举报 codes=c#] //从数据库中读取数据 SqlConnection con = new SqlConnection("server=127.0.0.1//sqlexpress;uid=sa;"); con.Open(); con.ChangeDatabase("STggggg"); SqlCommand cmd = new SqlCommand("select * from 产品树where NodeType='f'", con); //https://www.wendangku.net/doc/308862117.html,mandType = CommandType.StoredProcedure; SqlDataAdapter sda = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); try { sda.Fill(ds); } catch { } finally { cmd = null; con.Close(); } //往TreeView中添加树节点 //添加根节点 TreeNode tn = new TreeNode(); tn.Text = "所有产品"; https://www.wendangku.net/doc/308862117.html, = "0";//Name作为ID tn.Tag = "0";//Tag作为RootID tn.ImageIndex = 0; tn.SelectedImageIndex = 0; tv.Nodes.Add(tn);//该TreeView命名为tv tv.SelectedNode = tv.TopNode;

WinForm数据绑定

WinForm数据绑定-简单绑定1 数据绑定的意义在前面的文章中已经做了描述。现在我们来具体了解一下数据绑定。 数据绑定被分为两个部分,(至少我是这样来分的)简单绑定和复杂绑定。以一种简单的方式来理解的话,简单绑定是只控件和某个单一对象之间的绑定,而复杂绑定是指和集合(ArrayList, Array, DataTable, DataSet)之间的绑定,而复杂绑定中隐含着简单绑定。所以我们必须先搞清楚简单绑定的想法(也是数据绑定实现的最基本的想法)。 前面描述过了数据绑定机制的想法是将数据和控件关联在一起的机制。那对于一个单一对象而言什么是数据呢?对象本身其实就可能包含一定的数据。比如我们知道的成员变量,它就在帮对象维持数据。而对于数据绑定机制而言,它关心的是属性。如果我们能将某个对象的属性和控件的某个属性关联在一起,那数据就可以自如的显示到控件中了。所以对我的认识而言,我认为简单绑定做的事情就是将对象中的属性和控件的属性关联。 考虑一下的代码。假设我定义了一个Person类,在这个类中我定义了三个属性FirstName, LastName, Age,我想将这三个属性分别显示在三个TextBox中。如果不使用数据绑定我们需要的代码如下。

Person person = new Person("Cai", "Peng", 32); textbox1.Text = person.FirstName; textbox2.Text = https://www.wendangku.net/doc/308862117.html,stName; textBox3.Text = person.Age; 这样做有什么问题吗?看来是没有什么问题,你的数据可以正常的显示在界面中。问题就在与如果用户修改了textBox1中的数据,你的person对象中的FirstName的值也会更改吗?如果你想确保person.FirstName中的值和你的textBox1.Text的值一致的话你要怎么做?你必须编写相应的代码来完成。比如你可以 在textBox1的TextChanged事件中编写如下的代码: person.FirstName = textbox1.text 这是不使用数据绑定时我们必须要做的事情。在这样的情况下我们为了保证textBox1中的值和对象中相应的数据是一致,我们必须这样做。如果使用数据绑定会怎么样呢? 为了说明以上的这种转变,建立一个winform来说明一下: 在这个项目中我建立了一个Person类和两个界面Form1, Form2.其中Form1不是用数据绑定。 person类:

VB控件 treeview用法详解

VB TreeView控件使用详解 (2012-06-16 15:08:16) 标签:分类: 第一小时:学习直接用代码将数据填充到树控件中。 为什么要先学习直接用代码将数据填充到树控件中因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么将表中的数据填充到树控件中,在第一小时里,树控件和表完全没有关系。 目的:我们要在树控件中建立如下的一个3层级关系 水果 | |__苹果 | |__红富士 | |__国光 | |__葡萄 |__红提子 |__青提子 解释:水果包含2种,一种是苹果,一种是葡萄,苹果又包含2种,一种是红富士,一种是国光,葡萄也如此。 在这里:“爷”是水果,“父”是苹果,葡萄,“子”是红富士,国光,红提子,青提子。概括如下: 爷(只能有一个):水果 父(这里有2个):父1:苹果;父2:葡萄

子(这里有4个):子1:红富士(父1苹果的子);子2:国光(父1苹果的子);子3:红提子(父2葡萄的子);子4:青提子(父2葡萄的子) 1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist 如何找到这两个控件 Treeview控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Treeview Control,Version " Imagelist控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Imagelist Control,Version " Treeview控件大家都明白干什么用的,Imagelist控件是干什么用呢原来这个控件是放图标用的,如果你想在树控件中显示图标的,这个图标都将储存在ImageList控件中。 2、设置这两个控件的属性 首先要讲清楚控件的属性设置有2种,一种是设置这个控件在ACCESS中的属性,比如名称等。一种是设置这个控件本身的属性。要设置这个控件在ACCESS中的属性,选中控件后按鼠标右键选“属性”就可以了。跟我们平时设置文本框什么的一样。要设置这个控件本身的属性,只要双击这个控件就可以了。 1)设置Treeview控件在ACCESS中的名称属性,将名称设置为“Treeview" 2)设置Imagelist控件在ACCESS中的名称属性,将名称设置为“Image" 2)设置Imagelist控件本身的属性,双击控件后,在弹出来的设置框中选“Images",单击“Insert Picture"按钮,在你电脑中选择你需要的图标。在“Key:”栏中填入“K1”。其他默认设置不用改。3)设置Treeview控件本身的属性,双击控件后,在弹出来的设置框中选“General”,在这个选项面版中有很多项设置,大多数是设置树控件的显示格式,你自己慢慢研究。这里我们将第一项“Style"选7,在第五项“Imagelist"选项中将我们放置的Imagelist控件“Image"选上。这项设置就将图标和树控件联系了起来。 3、写代码将数据填充到树控件中

vb TreeView 控件应用实例

vb TreeView 控件应用实例 2009-11-14 20:52 TreeView 控件应用实例:将 TreeView 绑定到 Biblio.mdb 数据库 应用示例:DataTree.vbp 本章的代码示例是从应用示例 DataTree.vbp which is listed in the Samples directory 中得到的。 可将数据库中的数据绑定到 TreeView 控件。下面的示例将 TreeView 控件绑定到 Biblio 数据库,该数据库可以在 Visual Basic CD 中找到。该应用实例将 Publishers 表作为树节点的第一层。如果一个出版商对应于一个或多个书名,则这些书名将作为该出版商的子节点加入树中。 图 2.42 与数据绑定的 TreeVew 控件 下面的代码用到了如下对象: Data Access Object Library(3.5) 名为“frmDataTree”的 Form 对象 名为“tvwDB”的 TreeView 控件 名为“cmdLoad”的 CommandButton 控件 将 Biblio.mdb 数据库绑定到 TreeView 控件 在工程中添加对数据访问对象(DAO 3.0)的引用。 为 Database 和 Node 对象创建模块级的变量。 在 Form Load 事件中,用 OpenDatabase 语句将 Database 对象变量设置为 Biblio 数据库。 用 Nodes 集合的 Add 方法创建顶层的节点对象。 在 CommandButton 的 Click 事件中,创建两个 Recordset 变量,并将它们设置为Publishers 和 Titles 表。

c#treeview绑定四级菜单

Winform中常常会涉及这方面的应用,用treeview来绑定四级部门,下面是我在实际经验中总结出来的一段代码,以供参考,并有注释 private void binds() { DataSet ds = new DataSet(); SqlConnection con = new SqlConnection(Maticsoft.DBUtility.DbHelperSQL.connectionString); string sql = "select CompanyName from CRM_CompanyInformationFirst"; SqlDataAdapter adapter = new SqlDataAdapter(sql, con); adapter.Fill(ds, "companyname"); foreach (DataRow row in ds.Tables["companyname"].Rows)//一级菜单绑定总公司 { TreeNode tn = new TreeNode(); https://www.wendangku.net/doc/308862117.html, = row["companyname"].ToString(); tn.Text = row["companyname"].ToString(); treeView1.Nodes.Add(tn); DataSet d = new DataSet(); string ss = "select CompanyName from CRM_CompanyInformationSec where job_no='" + https://www.wendangku.net/doc/308862117.html, + "'"; SqlDataAdapter da = new SqlDataAdapter(ss, con); da.Fill(d, "CompanyName"); foreach (DataRow rows in d.Tables["CompanyName"].Rows)//二级菜单绑定分公司 { TreeNode tnn = new TreeNode(); https://www.wendangku.net/doc/308862117.html, = rows["CompanyName"].ToString(); tnn.Text = rows["CompanyName"].ToString(); treeView1.Nodes[tn.Index].Nodes.Add(tnn); DataSet dd = new DataSet(); string sss = "select CompanyName from CRM_CompanyInformationThird where job_no1='" + https://www.wendangku.net/doc/308862117.html, + "' and job_no2='" + https://www.wendangku.net/doc/308862117.html, + "'"; SqlDataAdapter daa = new SqlDataAdapter(sss, con); daa.Fill(dd, "CompanyName"); foreach (DataRow rowss in dd.Tables["CompanyName"].Rows)//三级菜单绑定部门 { TreeNode tnnn = new TreeNode();

利用TreeView实现层次结构数据导航查询

文章发表于【《电脑开发与应用》】,引用请注明出处,谢谢! 利用TreeView实现层次结构数据导航查询 [摘要]:为了充分发挥TreeView控件展示数据和导航查询的作用,文章通过一个通讯录实例,介绍了如何在https://www.wendangku.net/doc/308862117.html,中利用TreeView实现层次结构数据的加载及导航查询,讨论了如何做到精准导航查询。文章提出的改进的导航查询方案中的自定义函数,具有一定的借鉴意义。 [关键词]:https://www.wendangku.net/doc/308862117.html,;TreeView;层次结构数据;导航查询 1.引言 C#是微软推出的基于.NET平台的开发语言,是一种使用简单、功能强大、表达力丰富的语言。Visual Studio 2008中,.NET在数据存取方面做了很大的调整。在.NET 框架下,数据存取是由https://www.wendangku.net/doc/308862117.html,来完成的。https://www.wendangku.net/doc/308862117.html,是一组用于和数据源进行交互的面向对象类库,通常情况下,数据源是数据库。 TreeView是一个重要的常用控件,经常充当导航器的作用。在实际的软件开发中,常常需要将TreeView 与数据库进行连接,以填充其节点。用TreeView可以显示诸如商品分类、区域名称等等的层次结构数据。在大部分软件的开发中,TreeView都是一个不可缺少的展示或者导航控件。TreeView的内容加载一般来讲有三种方式:(1)界面设计时在TreeView设计器或者代码中直接填充TreeView控件。(2)从XML文件中读取数据建立树型结构。(3)从数据库中读取数据,建立树型结构。本文将通过一个简单的通讯录实例,介绍如何在https://www.wendangku.net/doc/308862117.html,中利用TreeView实现层次结构数据的导航查询。 2.数据表设计 本文TreeView控件的数据源,主要有三个字段:即分组号(id)、分组名称(groupName)、上一级分组号(parentId)。约定分组号作为用来标识当前分组的唯一标识。当分组的parentId为0时,表示该分组为顶级分组,否则parentId为一个大于0的值。如此形成一个具有层次结构的数据源。存放联系人分组的groups 表如表1所示。 表1 联系人分组groups表结构 构造groups表数据的内容如图1所示。 图1 groups表数据 另外,实例中还需要一个联系人信息表addressList,构造表中数据如图2所示,其中groupId字段用来标记联系人所在分组的组号。

多种方法进行treeview绑定数据库

TreeView绑定数据库(免费,哥为了大家,费了20个经验值,给个5星吧!) 数据库: 公司:id(int) company(varchar(50) 部门:id(int) deid(int) department(varchar(50)) 班组:id(int) coid(int) class(varchar(50)) 前台 方法1: DB DBManager = new DB();//实例化数据库操作类 string strConn = System.Configuration.ConfigurationManager.Conne ctionStrings["rizhi"].ConnectionString; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //TreeView1.Attributes.Add("onclick", "OnTreeNodeChecked() "); TreeView1.Attributes.Add("onclick", "testClick(event);return tr ue;");//单击文字,CheckBox=true TreeView1.ShowCheckBoxes = TreeNodeTypes.Leaf;//最后一级选中 TreeView1.ExpandDepth = 0;//不展开 using (SqlConnection conn = new SqlConnection(strConn)) { DataSet ds_company = new DataSet();//实例化数据集(公司) SqlDataAdapter sda_company = new SqlDataAdapter("selec t * from [company] where id<>"+0+" and id<>"+1001, conn);//实例化数据适配器(公司) sda_company.Fill(ds_company, "company");//虚拟表填充到内存for (int i = 0; i < ds_company.Tables["company"].Rows.Coun

数据绑定控件的用法

第11周 教学目标 通过本周的学习使学生熟练掌握在不使用数据源控件的前提下GridView、DetailsView、FromView、DataList、Repeater和ListView这几种数据绑定控件的用法,能够根据页面操作的要求正确选择有关控件。 教学重点 掌握各种数据绑定控件GridView、DetailsView、FormView、ListView、Repeater、DataList的用法。 教学难点 在不使用数据源控件的情况下使用各种数据绑定控件展示及更新数据。GridView、DetailsView控件的模板列的定制及ListView、Repeater、DataList 控件各种模板的定义。 教学过程 各种数据绑定控件的常用用法: 1、GridView控件是以网格的形式显示多条记录,可实现分页、排序,并可对记 录进行选择、编辑、删除操作。(但不能进行插入) (1) GridView控件提供了多种列类型,默认是BoundField类型,这种类型的列在显示态时是以Label的形式显示数据,在编辑态时用 TextBox来接受用户输入。如果BoundField列不能满足用户要求, 可以使用其他类型的列来绑定数据,或者使用TemplateField列定 制在不同模板下的列的显示情况。 (2) GridView的模板列主要有以下几种:ItemTemplate、AlternatingItemTemplate、EditItemTemplate、HeaderTemplate、 FooterTemplate。 (3) GridView提供了三种操作的命令按钮列CommandField,分别是“选择”、“编辑”和“删除”,要设置对应的ShowSelectButton、

[Word]数据库基础实验二 Access数据库中查询、窗体和报表的创建

[Word]数据库基础实验二 Access数据库中查询、窗体和 报表的创建 实验二 Access数据库中查询、窗体和报表的创建 一、实验目的 1. 掌握INSERT、DELETE和UPDATE命令。 2. 掌握SELECT命令。 二、实验内容 1. 在Access中,执行SQL命令只能查询视图中进行。操作如下: (1)打开数据库管理器,选中“查询”对象,如图6.1所示: 图6.1查询设计器 (2)在查询设计器中,在“设计视图创建查询”的设计器中,在菜单“视图”中选择“SQL视图”。如图6.3 、图6.3 所示。 在SQL编辑器中,可以输入各种设计好的SQL语句,执行得到结果。

图6.2查询设计视图 图6.3查询设计视图 2. 用SQL中的数据更新命令对Test1.mdb数据库中表Teachers2进行操作。 (1)用INSERT命令插入一条新的记录。 600001 杨梦女 59 66/04/22 YES 1660 210 (2)用INSERT命令插入一条新的记录。 600002 罗贤兴 52 (3) 用DELETE命令删除姓名为关红梅的记录。 (4)用DELETE命令删除年龄小于36且性别为“女”的记录。 (5)用对表中工龄超过25年的职工加20%元工资。说明:下面所有的实验都是针对Test1.mdb数据库中的表Teachers和Students。

3. 直接写出下列SELECT语句,并在一空查询的SQL视图中逐一输入这些命令运行。 (1)查询所有教师的基本信息。 (2)查询教师的教师号、姓名、性别和年龄 (3)查询教师的教师号、姓名和实发工资。 (4)查询教师的人数和平均实发工资。 (5)查询华成的基本情况。 (6)查询所有男教师的基本信息。 (7)查询90年以前参加工作的所有教师的教师号、姓名和实发工资。 (8)查询所有不姓高的学生的基本情况。 (9)查询男女生的最低分、最高分和平均分数 (10)查询男女职工的最低工资、最高工资和平均工资(工资是指实发工资)。 (11)查询所有党员的教师号和姓名,并且按年龄从大到小排列。 (12)查询党员和非党员的人数和平均年龄 4. 连接查询。直接写出下列SELECT 语句,并在一空查询的SQL视图中逐一输入这些命 令运行。 (1)请查询学号为"010002"的学生的教师的教师号、姓名和性别。 (2)请查询每个教师的教师姓名和学生人数。 (3)请查询每一个教师的姓名以及所有学生、最低分、最高分和平均分。 5. 使用Access提供的“使用向导创建查询”分别为3.1和3.2题创建查询,并仔细查 看所产生的SELECT命令。 6. 使用Access提供的“在设计视图中创建查询”分别为3.3‐3.10和 4.1‐4.3题创 建查询,并仔细查看所产生的SELECT命令。

TreeView与数据库配合使用(C# WinForm+SQL Server 2008)

《企业信息化项目开发》上机内容 TreeView与数据库配合使用(C# WinForm + SQL Server 2008)一、实训目标 使用三层架构完成简单应用程序的开发 二、涉及知识点 1.使用三层架构完成简单的应用程序开发 2.TreeView控件 三、实训内容 1.创建数据库和表 2.搭建项目三层架构 3.使用TreeView控件 四、实训步骤 1.创建数据库和表 (1)新建一个名为“Test”的数据库。 CREATE DATABASE Test GO USE Test GO (2)里边新建一张数据表叫做“Division”——行政区划表。 数据表如下: CREATE TABLE Division ( ID int IDENTITY (1, 1)PRIMARY KEY,--自动增长的标记列

NAME varchar (50)NOT NULL, --行政区划的名称 ParentID int NOT NULL,--行政区划的上一级区划ID,最高级区划的上一级默认为0 ) GO 插入测试数据 Insert Into Division(NAME,ParentID)Values ('北京',0) Insert Into Division(NAME,ParentID)Values ('山东',0) Insert Into Division(NAME,ParentID)Values ('河北',0) Insert Into Division(NAME,ParentID)Values ('海淀',1) Insert Into Division(NAME,ParentID)Values ('中关村',4) Insert Into Division(NAME,ParentID)Values ('济宁',2) Insert Into Division(NAME,ParentID)Values ('曲阜',6) Insert Into Division(NAME,ParentID)Values ('济南',2) GO 2.搭建项目三层架构 (1)TreeViewModel实体类的实现:

TreeView的用法基本用法

TreeView 的用法开始(挺全的) //************* TreeView 的用法开始******************// 一:TreeView.Items[0].Expanded := True; // 展开第一个节点 二:TreeView.Items[0].Item[0].Selected := True; // 移动到第一个节点的第一个子节点找当前节点的下一个节点,按序号找如下: if treeview1.Selected.GetNext<>nil then treeview1.Selected.GetNext.Selected:=true; TreeView1.SetFocus; 找当前节点的下一个同层兄弟如下: if treeview1.Selected.getNextSibling<>nil then treeview1.Selected.getNextSibling.Selected:=true; TreeView1.SetFocus; TreeView.Selected.getPrevSibling //当前选中节点的上一个兄弟节点 TreeView.Selected.Parent // 当前选中节点的父节点 getfirstchild是跳到该节点子结点中的第一个 getlastchild是跳到该节点子结点中的最后一个 如果你是想跳到同层兄弟结点的第一个 if treeview1.selected.parent<>nil then treeview1.selected.parent.getfirstchild.selected:=true else treeview1.items.item[0].selected:=true; 如果你是想跳到同层兄弟结点的最后一个 if treeview1.selected.parent<>nil then treeview1.selected.parent.getlastchild.selected:=true else treeview1.Items.Item[treeview1.Items.Count-1].Selected:=true; TreeView的使用方法 基本信息: TreeView 是一个显示树型结构的控件,每一个节点都是一个新类, 使用具有代表性每个节点都有四个值:

几种数据绑定控件的区别

五种数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList) 2011-03-30 11:51 转载自aabbcczy 最终编辑aabbcczy Net 2中5个数据源控件,GridView,DataList,Repeator ,DetailsView,FormView 其中前3个用于呈现多列数据,后面2个用于呈现单列数据,即常用的数据明细. GridView和DetailsView控件的布局固定,自定义数据显示的布局功能有限,一般适合布局简单的数据呈现 DataList,Repeator和FormView数据控件都有很强的自定义布局能力,如果数据呈现需要较为复杂的布局方案,这3个控件是 首选 GridView 控件 GridView 控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。 注意:GridView 控件是 https://www.wendangku.net/doc/308862117.html, 的早期版本中提供的 DataGrid 控件的后继控件。除了添加利用数据源控件功能的新功能,GridView 控件还实现了某些改进,例如,定义多个主键字段的功能、使用绑定字段和模板的改进用户界面自定义以及用于处理或取消事件的新模型。有关更多信息,请参见 GridView Web 服务器控件和比较 GridView 和 DataGrid Web 服务器控件。 DetailsView 控件 DetailsView 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView 控件通常用在主/详细信息方案中,在这种方案中,主控件(如 GridView 控件)中的所选记录决定了 DetailsView 控件显示的记录。 FormView 控件 FormView 控件与 DetailsView 控件类似,它一次呈现数据源中的一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FormView 控件与DetailsView 控件之间的差别在于:DetailsView 控件使用基于表格的布局,在这种布局中,数据记录的每个字段都显示为控件中的一行。而 FormView 控件则不指定用于显示记录的预定义布局。实际上,您将创建包含控件的模板,以显示记录中的各个字段。该模板包含用于设置窗体布局的格式、控件和绑定表达式。 Repeater 控件 Repeater 控件使用数据源返回的一组记录呈现只读列表。与 FormView 控件类似,Repeater 控件不指定内置布局。您可以使用模板创建 Repeater 控件的布局。 DataList 控件 DataList 控件以表的形式呈现数据,通过该控件,您可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。您可以对 DataList 控件进

相关文档