1 BindingNavigator数据

合集下载

binding转录组术语

binding转录组术语

binding转录组术语摘要:一、背景介绍1.转录组测序的发展2.转录组测序的重要性二、binding转录组术语解释1.binding2.转录组测序3.RNA-seq4.ChIP-seq5.ATAC-seq6.H3K27ac7.H3K4me1三、binding在转录组测序中的应用1.研究基因表达2.研究基因调控3.研究染色质结构四、binding转录组测序的优势与局限1.优势a.高通量b.高分辨率c.广泛应用2.局限a.实验操作复杂b.数据分析困难c.样本要求较高五、未来展望1.binding技术的进一步发展2.binding在转录组研究中的应用前景正文:随着生物信息学的发展,转录组测序技术已经成为研究基因表达和调控的重要手段。

在这个过程中,binding作为一个关键术语,在转录组测序中扮演着重要角色。

本文将对binding转录组术语进行详细解释,并探讨其在转录组测序中的应用及优势与局限。

首先,我们来解释一下binding这个术语。

在转录组测序中,binding通常指代染色质免疫沉淀测序(Chromatin Immunoprecipitation Sequencing,ChIP-seq)技术。

ChIP-seq是一种用于研究染色质结构和基因调控的方法,通过使用特定的抗体,可以特异性地富集染色质中的某一类组蛋白修饰,如H3K27ac或H3K4me1等。

这些特定的组蛋白修饰可以反映基因的活跃转录状态,从而帮助研究基因表达和调控。

在转录组测序中,binding技术可以与RNA-seq和ATAC-seq等技术结合,共同研究基因表达、基因调控和染色质结构。

例如,通过结合RNA-seq,可以研究特定组蛋白修饰与基因表达的关系;而结合ATAC-seq,可以研究染色质的开放程度与基因表达的关系。

这些技术相互补充,共同为我们揭示了基因表达和调控的奥秘。

binding转录组测序技术具有高通量、高分辨率等优势,使其在生物科学研究中得到广泛应用。

vb.net bindingnavigator用法

vb.net bindingnavigator用法

BindingNavigator 是 Visual Basic .NET 中的一个控件,用于提供数据绑定项目的导航和编辑功能。

它常用于 Windows Forms 应用程序中,特别是当你使用数据绑定来显示和编辑数据时。

以下是如何在 Windows Forms 应用程序中使用 BindingNavigator 的基本步骤:1. 添加 BindingNavigator 控件在 Visual Studio 的工具箱中找到 BindingNavigator 控件,并将其拖到你的表单上。

2. 设置数据源你需要将 BindingNavigator 控件与一个数据源绑定。

这通常是一个实现了 IBindingList 或 IBindingListView 接口的对象,例如 BindingList<T> 或 DataView。

例如,如果你有一个 BindingList<Employee>对象作为你的数据源,你可以这样设置:csharp复制代码bindingNavigator.BindingSource = yourBindingList;3. 配置 BindingNavigator 的属性你可以配置 BindingNavigator 的属性来定制其行为和外观,例如:复制代码* `DisplayMember`:设置用于显示数据的属性名。

* `AddNewItem`、`RemoveItem` 等按钮的文本和图片等。

4. 处理事件你可以处理 BindingNavigator 的事件,例如 BindingNavigatorMoveItemFirst、BindingNavigatorMoveLastItem 等,来响应用户的导航操作。

5. 使用 BindingSource除了 BindingNavigator,你还需要一个 BindingSource 对象来作为数据源和视图之间的中介。

你可以通过设置 BindingNavigator 的 BindingSource 属性来使用它。

客户信息管理系统(实训报告)

客户信息管理系统(实训报告)

目录前言 (1)1.需求分析 (1)1.1开发平台 (1)1.2用户角色分析 (1)2.功能需求分析 (2)2.1系统功能层次图 (2)2.2功能需求说明 (2)2.1.1添加客户信息 (2)2.1.2删除客户信息 (2)2.1.3注册新用户信息 (2)2.1.4删除用户信息 (3)2.1.5修改用户密码 (3)3.功能实现 (3)3.1 数据库的设计和实现 (3)3.1.1客户信息表 (3)3.1.2用户信息表 (3)3.1.3区域信息表 (4)3.2 用户界面层的实现 (4)3.2.1登录界面的实现 (4)3.2.2主界面的实现 (5)3.2.3添加客户信息界面 (8)3.2.4修改密码界面 (9)3.2.5注册新用户界面 (11)四、实训总结 (11)前言随着Internet的飞速发展,更新换代越来越频繁,人类已经进入网络计算和数字化时代,通过计算机管理软件对企业进行管理,管理更多的客户信息,快捷而让管理员找到、添加、删除相关的客户信息。

让更多的企业对自己客户的管理更加规范、快速、方便。

客户信息管理系统是一种用于储存企业客户信息资源,便于与客户及时沟通交流,从而增强与客户关系、提高企业管理水平的系统。

企业可以通过客户信息管理系统管理、分析和统计现有客户资源,以便快速、全面、准确地了解现有客户情况,从而指定长期客户沟通和访问计划,制定营销战略,促进企业长期、良性经营发展。

本系统采用Visual Studio2008来实现美观的界面,并用SQL2005自动连接实现数据库动态更新功能,通过这种连接技术让整个系统能够完整地实现所需要的功能。

1.需求分析1.1开发平台考虑到本系统的性能要求,和现有的条件,我选择了Windows 7作为开发、测试和运行的平台。

因为Windows系统是目前应用最广泛的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体等特点而成为软件发展的趋势,选它作业为开发的平台,易于软件功能的扩展和软件的升级。

BindingNavigator

BindingNavigator

BindingNavigator 类关键字:BindingNavigator类、BindingNavigator方法1. BindingNavigator类表示窗体上绑定到数据的控件的导航和操作用户界面 (UI)。

命名空间:System.Windows.Forms;程序集:System.Windows.Forms(在 system.windows.forms.dll 中);语法:[ComVisibleAttribute(true)][ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]public class BindingNavigator : ToolStrip, ISupportInitialize2. BindingNavigator方法BindingNavigator控件表示在窗体上定位和操作数据的标准化方法。

多数情况下,BindingNavigator与 BindingSource 控件成对出现,用于浏览窗体上的数据记录,并与它们交互。

在这些情况下,BindingSource 属性被设置为作为数据源的关联System.Windows.Forms.BindingSource组件。

默认情况下,BindingNavigator控件的用户界面 (UI) 由一系列 ToolStrip 按钮、文本框和静态文本元素组成,用于进行大多数常见的数据相关操作(如添加数据、删除数据和在数据中导航)。

每个控件都可以通过BindingNavigator控件的关联成员进行检索或设置。

类似地,还与以编程方式执行相同功能的BindingSource类的成员存在一一对应关系,如下表所示。

UI 控件BindingNavigator 成员BindingSource 成员移到最前MoveFirstItem MoveFirst前移一步MovePreviousItem MovePrevious当前位置PositionItem Current计数CountItem Count移到下一条记录MoveNextItem MoveNext移到最后MoveLastItem MoveLast新添AddNewItem AddNew删除DeleteItem RemoveCurrent将 BindingNavigator 控件添加到窗体并绑定到数据源(例如 BindingSource)时,将自动在此表中建立关系。

c#连接sqlite分页显示实用教程

c#连接sqlite分页显示实用教程

转载请注明出处!min20062020@。

源码下载:/detail/min20062020/5491029该版本还有需要改进之处,下一版本进行修改。

一、准备工作1.创建应用,布局界面。

创建C# windows应用程序,名为CSharp_Sqlite,将设计界面上布局groupBox,用于显示学生信息,拖入显示控件dataGridView1和菜单控件bindingNavigator1。

另外添加两个button,用于查看学生信息和退出。

如下图:注:bindingNavigator1的默认属性是在界面的上方,习惯性操作在下方,因此修改其Dock 属性,设置为Buttom。

2.添加sqlite运行环境的引用。

由于VS并不自带,因此需要自行安装和添加。

步骤如下:1)安装解压后,安装“附加文件”目录下的SQLite-1.0.66.0-setup.exe即可。

或到以下链接下载:/detail/min20062020/53730792)添加sqlite引用在选项“项目”-> “添加引用”中,找到System.Data.SQLite,确定添加。

此时可看到左侧项目的“引用”中,出现System.Data.SQLite。

【注意】选中该引用,在该引用的属性界面上,将“复制本地”设置为“true”,这样运行之后,可将sqlite.dll从引用处拷贝到项目下,防止出现找不到System.Data.SQLite的错误。

3.添加sqlite数据库表新建项目文件夹DB,添加现有项studentInfo.db3。

(需事先创建并插入数据,下载项目中有此文件,若没有,可参考附录中的SQL语句)【注意】选中该数据库,在其属性界面上,将“复制到输出目录”设置为“始终复制”,为防止出现找不到db文件的错误。

二、数据的显示在使用数据库相关语句之前,必须在代码文件之前添加引用空间名称:using System.Data.SQLite;1.添加数据库查询代码创建函数获取数据库信息,主要包括三个部分:打开数据库连接、执行sql语句,断开连接。

什么是数据绑定

什么是数据绑定
什么是数据绑定
• 数据绑定是一种自动将数据按照指定格式 显示到界面上的技术。 • .NET数据绑定主要包括3个主要的层次:数 据显示控件、数据绑定管道和数据访问组 件
• 数据显示控件:一组负责显示数据和接受用户输入的界面 元素。(Windows Form控件、控件、WPF控 件等) • 数据绑定通道:该组件主要是BindingSource类,它是数 据源和数据显示控件之间的纽带,将数据从数据源传递到 显示控件,也从控件获取数据,并对数据进行必要的处理。 • 数据访问组件:该组件负责从数据源获取数据,并将数据 保存在内存中。
ቤተ መጻሕፍቲ ባይዱ
简单数据显示控件 Label textbox等
数据导航控件 BindingNavigator
复杂数据显示控件 DataGridView等
数据绑定通道 BindingSource
数据访问组件
数据源 (数据库等)
.NET 数据绑定结构图

C#导航条控件

C#导航条控件

1. BindingNavigator控件(导航条)(1) BindingNavigator控件的主要作用BindingNavigator控件提供了一个用户界面,在这个界面中提供了一些按钮,通过这些按钮能够帮助你完成导航记录、添加记录、删除记录的功能。

(2) BindingNavigator控件的组成部分BindingNavigator控件本质上就是一个工具栏(ToolStrip)控件,在这个工具栏中带有一系列的按钮(ToolStripButton)、文本框(ToolStripTextBox)、标签(ToolStripLabel)和分隔符(ToolStripSeparator)等。

BindingNavigator控件完成大多数常见的与数据有关的操作:定位数据、添加数据和删除数据等。

默认情况下,BindingNavigator控件如下图所示。

下表列出BindingNavigator控件包含的子控件并描述其功能。

(3) 如何使用BindingNavigator控件如果你想要使用BindingNavigator控件来导航记录、添加记录和删除记录,还必须借助BindingSource组件,只有这两个控件相互配合,才能够实现这些功能。

1 BindingNavigator控件和BindingSource组件如何关联起来?为了能够让BindingNavigator控件和BindingSource组件关联起来,你只需要设定BindingNavigator控件的BindingSource属性即可,如下所示:this.bindingNavigator1.BindingSource = bindSource;2 BindingNavigator控件和BindingSource组件如何相互配合?对于BindingNavigator控件中每一个子控件,BindingSource组件中都有一个对应的方法来提供相应的功能。

换句话说,当你在BindingNavigator控件中点击某个子控件时,将会调用BindingSource组件中的某个方法或某个属性。

全国高等学校计算机水平考试Ⅱ级C#程序设计考试大

全国高等学校计算机水平考试Ⅱ级C#程序设计考试大

全国高等学校计算机水平考试Ⅱ级---《C#程序设计》考试大纲及样题(试行)一、考试目的与要求C#是一种使用简单、功能强大、完全面向对象的程序设计语言,它结合了C++强大灵活和Java语言简洁至上的特性,吸收了Visual Basic所具有的易用性,是Microsoft面向下一代互联网软件和服务战略的重要组成部份,在Microsoft .NET 框架中扮演着十分重要的角色,为桌面应用、Web应用和移动应用的开发提供了一种通用、高效的语言工具。

《C#程序设计》的考试目标是测试考生掌握程序设计语言的基本知识、面向对象的基本概念;掌握程序设计的基本方法与思路,其中包括数据类型、基本语句、模块化程序设计、面向对象程序设计、多线程程序设计、可视化程序设计及文件与数据库访问等;并能综合运用这些语言知识、结合自身专业领域特点进行基于.Net的程序设计以解决实际问题的能力。

其考试基本要求如下:1.熟练使用Visual C#.NET集成开发环境。

2.熟练掌握C#的数据类型、基本语句、条件和循环语句、常用函数和常用算法。

3.掌握C#中面向对象的程序设计方法,如类的定义(属性、方法和事件的定义),对象及其成员的访问和事件驱动程序的基本特性。

4.掌握C#.NET的可视化编程,能够设计窗体,使用常用控件,以及设置控件的属性,并对这些控件的事件进行编程。

5. 掌握C#多线程程序设计的方式、方法。

6. 掌握.NET常用公共类库的使用。

7.掌握C#.NET的文件的访问方法,掌握数据库的连接与访问方法。

8.能够编写和调试简单的Visual C#.NET程序,并能综合应用C#.NET进行程序设计以解决实际问题。

二、考试内容(一) C#语言基础【考试要求】要求考生掌握程序设计语言的基本知识、其中包括数据类型、基本语句、模块化程序设计、常用算法、条件和循环等程序设计基本技能。

【主要考点】1.数据类型1)值类型:整数类型、实数类型、字符类型、布尔类型、枚举类型和结构类型;2)引用类型:类、接口、委托、数组;3)数据类型转换:隐式转换、显式转换;2.变量与常量3.运算符1)运算符:运算符种类、功能、目数、优先级、结合性理解;2)算术运算:算术运算规则、自增自减运算;3)位运算:位运算规则和简单位运算;4)赋值运算中类型转换规则;5)复合赋值;6)条件运算;4.表达式1)表达式组成规则、各类表达式;2)描述计算过程/条件判断的表达式;3)各类型数据混合运算中求值顺序;4)表达式运算中的隐式类型转换和强制类型转换;5)基本运算执行顺序、表达式结果类型;5.关系和逻辑运算1)关系和逻辑运算规则;2)逻辑运算的优化规则;6.语句1)顺序结构语句;2)赋值语句;3)输入和输出;4)复合语句;7.选择结构语句1)if、switch 语句;2)选择语句嵌套;8.循环结构语句1)for 语句、while 语句、do…while 语句;2)foreach循环语句;3)循环语句嵌套;4)退出和结束语句:continue、break 语句;9.数组、队列、栈和hash表1)数组声明、初始化、引用;2)数据对象的赋值与输出;3)数组排序;4)队列、栈和hash表;(二)面向对象的程序设计方法【考试要求】C#面向对象的程序设计方法主要要求掌握类和对象的创建方法,类的方法的定义、调用与重载,理解方法的参数传递的工作机制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

bindingNavigator中有显示上一条下一条的按钮,想要用一个BUTTON来代替这样的效果,应该如何实现呢?我来帮他解答满意回答2008-12-27 17:24比如:bindingNavigator1.BindingSource=BindingSource1;bindingNavigator中的按钮事件private void toolStripButton1_Click(object sender, EventArgs e){try{this.BindingSource1.MoveFirst //第一条//this.BindingSource1.MoveLast //最后一条//this.BindingSource1.MoveNext //下一条//this.BindingSource1.MovePrevious;//上一条}catch (Exception E){MessageBox.Show("错误:" + E.Message);}}座右铭:谁遇到缺德事不立即感到厌恶,遇到美事不立即感到喜悦,谁就没有道德感,这样的人就没有良心。

谁做了缺德事而只害怕被判刑,不由于自己行为不轨而责备自己,而是由于想到痛苦的后果才胆战心惊,这种人也没有良心,而只有良心的表面罢了。

但是,谁能够意识到行为本身的缺德程度,而不考虑后果如何,却是有良心的。

——康德bindingnavigator如何与datagridview绑定2011年9月6日联系商易上海电子商务网站建设,了解更多1: BindingSource bs = new BindingSource();2: bs.DataSource = dateTabel1;3: bindingNavigator1.BindingSource = bs; 4: dataGridView1.DataSource = bs ;========BindingNavigator:BindingNavigator控件一般要与BindingSource 控件一同应用较为便利,因为对于BindingNavigator 控件上的每个按钮,都有一个对应的 BindingSource 组件成员,其以编程体式格式容许有雷同功能。

例如,MoveFirstItem 按钮对应于 BindingSource 组件的MoveFirst 办法,DeleteItem 按钮对应于RemoveCurrent办法,等等。

尽管BindingNavigator可以绑定到任何数据源,但它被设计为经由过程其BindingNavigator.BindingSource 属性与BindingSource组件集成。

是以定义一个BindingSource ,并将BindingNavigator 和DataGridView的数据源都设置为BindingSource ,可包管BindingNavigator 和DataGridView的数据同步。

&#160;&#160;----------------------------------------------------------------------------------------------------------------------BindingSource控件介绍BindingSource控件是.NET Framework 2.0供给的新控件之一。

BindingSource控件与数据源建树连接,然后将窗体中的控件与BindingSource控件建树绑定关系来实现数据绑定,简化数据绑定的过程。

BindingSource控件便是一个连接后台数据库的渠道,同时又是一个数据源,因为BindingSource控件即支撑向后台数据库发送号令来检索数据,又支撑直接经由过程BindingSource控件对数据进行接见、排序、筛选和更新操纵。

BindingSource控件可以或许主动经管很多绑定题目。

BindingSource控件没有运行时界面,无法在用户界面上看到该控件。

BindingSource控件经由过程Current属性接见当前记录,经由过程List属性接见全部数据表。

下表列出了BindingSource控件的首要属性:属性申明AllowEdit 指导是否可以编辑BindingSource控件中的记录。

AllowNew&#160; 指导是否可以应用 AddNew 办法向BindingSource控件添加记录AllowRemove&#160; 指导是否可从BindingSource控件中删除记录。

Count&#160; 获取BindingSource控件中的记录数。

CurrencyManager 获取与BindingSource控件接洽关系的当前记录经管器。

Current&#160;&#160; 获取BindingSource控件中的当前记录DataMember&#160;&#160; 获取或设置连接器当前绑定到的数据源中的特定命据列表或数据库表。

DataSource&#160; 获取或设置连接器绑定到的数据源。

Filter 获取或设置用于筛选的表达式。

Item&#160; 获取或设置指定索引的记录。

Sort 获取或设置用于排序的列名来指定排序。

经由过程Current属性及RemoveCurrent、EndEdit、CancelEdit、Add和AddNew办法可实现对当前记录的编辑操纵。

下表列出了BindingSource控件的首要办法办法申明Add&#160; 将现有项添加到内部列表中CancelEdit&#160; 从列表中移除所有元素EndEdit&#160;&#160; 将挂起的更改应用于根蒂根基数据源。

Find&#160;&#160;&#160; 在数据源中查找指定的项。

MoveFirst&#160;&#160; 移至列表中的第一项。

MoveLast&#160;&#160; 移至列表中的最后一项。

MoveNext&#160;&#160; 移至列表中的下一项。

MovePrevious&#160;&#160; 移至列表中的上一项。

RemoveCurrent&#160; 从列表中移除当前项。

若是你是经由过程从[数据源]拖拽表到Form上生成的DataGridView及数据,那就用VS05主动生成的 BindingNavigator进行增、删、改。

凡是你甚至连一行代码都不消写。

别的,从vs05开端强烈推荐应用BindingSource作为控件和数据之间的中心层。

就是说控件绑定到BindingSource, BindingSource再绑定到数据对象(date item)或对象列表(data itemlist)。

如许做有很多益处。

BindingSource.EndEdit();会把更新提交到内存中的对象或对象列表(如DataSet)。

BindingSource.Update办法会把更新提交到数据库。

&#160;&#160;以Vs2005操纵Access2003数据库为例(不消领导)建一个Access&#160;&#160; 2003文件 db1.mdb&#160;&#160; 建一个表(Person):表布局如下,输入一些内容&#160;&#160;UID&#160; 主动编号主键name 文字&#160;&#160;age 数字&#160;&#160;sex 文字&#160;&#160;Vs2005建一个winform,把一个DataGridView、Button拖到Form上。

运行一下,再把db1.mdb 复制到Debug目次下。

给类增长三个成员:private DataTable dt;private BindingSource bs;private OleDbDataAdapter da;双击Form1,在Form1_Load里 :private void Form1_Load(object sender, EventArgs e)&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //// TODO: 这行代码将数据加载到表“db1DataSet.stu”中。

您可以按照须要移动或移除它。

&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //this.stuTableAdapter.Fill(this.db1DataSet.stu);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; OleDbConnection conn = new OleDbConnection();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb";&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; OleDbCommand cmd = new OleDbCommand();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; cmd.Connection = conn;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mandText = " * &#160; Person";&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; dt = new DataTable();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; da = new OleDbDataAdapter();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; da.SelectCommand = cmd;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; OleDbCommandBuilder cb = new OleDbCommandBuilder(da);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; da.Fill (dt);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; bs = new BindingSource();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; bs.DataSource = dt;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; dataGridView1.DataSource = bs;&#160;&#160;&#160;&#160;&#160;&#160; }双击button1,在button1_Click里&#160;&#160;private&#160;&#160; void&#160;&#160; button1_Click(object&#160;&#160; sender,&#160;&#160; EventArgs&#160;&#160; e)&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; da.Update(dt);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; MessageBox.Show("OK");&#160;&#160;&#160;&#160; }&#160;&#160;把我举的例子里private BindingSource bs;//去掉bs = new BindingSource();bs.DataSource = dt;dataGridView1.DataSource = bs; //也可以不消BindingSource,直接DataSource=dt; 这三行改成dataGrid1.DataSource = dt;---------""永远""记住一点:在应用DataAdapter的应用里,你底子无需手动打开连接和封闭连接。

相关文档
最新文档