net

阅读 / 问答 / 标签

这两个端口Ethernet1/0/1 GigabitEthernet1/1/1 有什么区

你好!可说没区别因为都是以太网接口但是传输速度不一样罢了。。。Ethernet1/0/1 一般在10MBPSGigabitEthernet1/1/1 1000MBP百兆是FastEthernet大致上就是这区别希望能帮助你!

H3C 交换机interface GigabitEthernet 1/0/3 什么意思?

g1/0/3 表示的就是 第1板卡的0槽位3端口第一位。1表示第一个板卡槽位,一般1U设备都是1.如果是模块化设备就是机框上的板卡槽位数第二位。0表示在这个板卡上的0槽位第三位。3表示这个槽位上的端口H3C能够提供业界覆盖最全面的交换机产品。从园区到数据中心、盒式到箱式、从FE、GE到10G和100G,从L2到L4/7,从IPv4到IPv6,从接入到核心,用户都有最丰富的选择和灵活的组合。在以太网领域,经历多年的耕耘和发展,H3C积累了大量业界领先的知识产权和专利。产品覆盖园区交换机和数据中心交换机产品,从核心骨干到边缘接入,10多个系列上百款产品,全部通过中国信息产业部、Tolly Group、MetroEthernet论坛以及IPv6 Ready等权威部门的测]试和认证,其中S9500系列高端交换机获得了107 项 Tolly 认证,是 Tolly Group 为一类交换机颁发认证最多的一次。凭借丰富的产品系列和深厚的技术积累,H3C交换机产品在数据中心、政府、金融、交通、能源、教育、企业、SOHO均有广泛成熟稳定的应用。在中国交换机市场,H3C自2003年公司成立以来,已累计出货上百万台,以太网交换机端口数占全球的市场份额23.4%,在交换机领域内综合技术实力和市场份额排名均达到业界第一。在国际市场,承建了TELEFONICA、西班牙JAZZTEL Triple Play承载网、日本新生银行和泰国宋卡太子大学校园网的骨干网络,H3C以太网交换机已成为全球信息化建设的一支生力军。

GigabitEthernet0/0/2 6 D 请问下 这在H3C 7502交换机上是什么意思 在线等,THANK YOU!

GigabitEthernet0/0/2 6GigabitEthernet =千兆接口第一个0为 0板卡 。如果是1U设备就是0如果是模块化交换机就不一定了。第二个0为 0槽位。板卡上的槽位第三位为端口号。连起来就是第0板卡0槽位26端口千兆接口。

gigabitethernet和ethernet

interface Ethernet0/0/0 指的是以太网端口0下面的子端口0 interface GigabitEthernet1/0/0 指千兆以太网接口 1/0/0表示机器号/槽位号/子接口号

gigabitetethern与gigabitethernet可以连接吗

不能。设备里面的ethernet是100M接口,gigabitethernet是1000M接口。并且ethernet不能配置IP,因为这个接口是二层口,所以不能连接。

交换机的interface ethernet 0/0/1 或0/0/3或者GigabitEthernet 0/0/1怎么对应到物理上的具体是哪个端口

你好!1.只知道IP是不能确定哪个物理端口的,只能知道在哪个VLAN而已(原因一个VLAN对应一个网段),但是如果知道MAC地址即可知道哪个端口。如果交换机是三层交换机也可以查看MAC对应IP,然后在使用display mac-address XXXX-XXXX-XXXX即可知道接口是哪个了在PC上的命令行窗口使用ipconfig /all即可知道MAC地址。假设某台机器的MAC地址为1111.1111.1111那么在设备上使用display mac-addresss 1111-1111-1111 即可查出来对应哪个端口,如果没有说明这个MAC地址不在这个设备学习到。2.知道端口了,那么就可以进入端口了,例如1111-1111-1111在Ethernet0/0/1就那么输入interface ethernet0/0/1了。如果想知道某个接口对应哪个MAC地址,使用display mac-address interface 接口编号例如:display mac-address interface ethernet0/0/1如果想知道本设备所有学到的MAC地址,那么使用display mac-address 或者display mac-address table希望你能成功!

在asp.net中给Session赋值怎么写啊?C#

Session["uid"] = this.txtuname.Text;这样写很正确楼上哪位是 asp 里面的用法

BOTTEAC VENETA,是什么品牌

品牌的起源起源  有着「意大利爱马仕」之称的BOTTEGAVENETA(BottegaVeneta宝缇嘉BV),创始人是Moltedo家族,他们于1966年在意大利Vicenza设立总部,取名为「BOTTEGAVENETA」,意即「VENETA工坊」。Moltedo家族独家的皮革梭织法,让BOTTEGAVENETA在70年代发光发热,成为知名的顶级奢侈名牌。  源自意大利出类拔萃的手工艺传统,宝缇嘉(BottegaVeneta)是皮革品牌中的翘楚,以精湛手工和优雅款式驰名,一直着重品质与技艺结合的宝缇嘉(BottegaVeneta),采用最优质的皮革配合臻致完美的手工技术,为旗下皮革精品赢得品质超卓的赞誉。这种问题百度都能找到的!http://baike.baidu.com/view/1037175.htm?fr=ala0_1

bottega venetta是什么中文意思?

中文名是宝缇嘉,是意大利很有名的包包的牌子。包包都编织的皮革身。

bottega veneta 什么牌子

bottegaveneta是意大利的一个奢侈品品牌,也是国际一线奢侈品品牌。起步于1966年,最初主要做手工梭织皮包,后来随着市场扩大,也由最初的皮包扩展至服装、高级珠宝、眼镜、香水、家具及家居用品等不同领域。BottegaVeneta为意大利的奢侈品品牌,中文品牌名字葆蝶家。葆蝶家的编制手袋常出现在名媛,和好莱坞明星的手上,展露出绝顶的好手感。属于奢饰品牌葆蝶家包包的制作工艺精良,创意十足,受许多时尚女性的喜爱。BottegaVeneta采用传统意大利皮革工艺制造,BottegaVeneta的时装美学是含蓄细致,因为懂得欣赏BottegaVeneta的人,都具备自信、优雅而忠于自己风格的个人特质。有意大利爱马仕之称的BOTTEGAVENETA,创始人是Moltedo家族,他们于1966年在意大利Vicenza设立总部,取名为BOTTEGAVENETA,意即VENETA工坊。Moltedo家族独家的皮革梭织法,让BOTTEGAVENETA在70年代发光发热,成为知名的顶级名牌。

Bottega Veneta 是哪个牌子 求介绍

有「意大利爱马仕」之称的BOTTEGA VENETA,创始人是Moltedo家族,他们于1966年在意大利Vicenza设立总部,取名为「BOTTEGA VENETA」,意即「VENETA工坊」。Moltedo家族独家的皮革梭织法,让BOTTEGA VENETA在70年代发光发热,成为知名的顶级名牌。 Bottega Veneta之所以矜贵,在于纵横交错的皮革简直就是耗时耗工的手艺指针,以10万起跳的Cabat为例,制作流程是,先各把两块皮上下粘合在一块儿,裁成条状后,再以师傅编织而成,等于动用到4片皮革,据说2到3位师傅至少要花3到4天才织得成一只包;Veneta也不简单,要先把一块光泽颜色毫无瑕疵的皮革,用机器按照固定间隔打出一个个洞,取另一块皮裁成条状,师傅再一格格把这条状皮革编到洞洞里头;这些身价不凡的包,除小羊皮和鹿皮,也推出鳄鱼皮,造价46万9千元,夺下全店最贵单品宝座。 Bottega Veneta以软包为主,编织皮革被处理的极为柔软,完全不用担心磨损衣服,除单纯的编织纹理,有的包打上镂空的金属铆钉、或预先在局部位置打了结、或在纵横格子加了车缝线装饰,甚至还有故意在每个格子切了一道口子,用久了就会翘起来,原来是呼应隐喻吉祥富贵的金鱼。

bottega veneta是什么牌子

  Bottega Veneta为意大利的奢侈品品牌,中文品牌名字葆蝶家,葆蝶家 (Bottega Veneta) 的编制手袋常出现在名媛和好莱坞明星的手上,展露出绝顶的好手感。葆蝶家包包的制作工艺精良,创意十足,受许多时尚女性的喜爱。  Bottega Veneta(葆蝶家),意大利奢侈品牌。采用传统意大利皮革工艺制造。产品由最初的皮包扩展至服装、高级珠宝、眼镜、香水、家具及家居用品等不同领域。  Bottega Veneta的时装美学是含蓄细致,因为懂得欣赏Bottega Veneta的人,都具备自信、优雅而忠于自己风格的个人特质。  有意大利爱马仕之称的BOTTEGA VENETA,创始人是Moltedo家族,他们于1966年在意大利Vicenza设立总部,取名为「BOTTEGA VENETA」,意即VENETA工坊。Moltedo家族独家的皮革梭织法,让BOTTEGA VENETA在70年代发光发热,成为知名的顶级名牌。

完型填空a new word is take the internet by storm in

a new word is take the internet by storm in china but no one knows quite what it meanshttp://www.tingroom.com/bbc/wnfs/299729.html

设备名称: [G:]USB Mass Storage Device(Netac OnlyDisk USB Device) PNP设备ID: VID = 0DD8 PID = 1A00

我的也是这款U盘,在找量产工具,知道的兄弟支一声啊

netacidrive拷贝到iphone的视频在哪里

如果导入的视频是苹果系统默认支持的,就会同步到视频中。如果是第三方视频播放软件,一般软件中有自带导入功能,并且可以无线导入。操作方法一在电脑上下载安装itunes软件。二打开itunes软件,在页面左上角找到菜单栏,点击“文件”中的“将文件添加到资料库”,将你想下载的影片添加到资料库。三连接设备itunes后进入设备。进入“影片”选项,勾选“同步影片”,点击右下角的“同步或者应用”即可。一:电脑上下载安装itools。二:使用USB数据线将手机连接到电脑。三:等待itool识别完成后选择视频、照片、音乐等,导出就可以了。

USB:Netac OnlyDisk 英文什么意思

接口USB:朗科优盘

Netac OnlyDisk USB Device里的文件删不下去怎么办谢谢了,大神帮忙啊

看你的朗科U盘是否有写保护!如果有,关闭了写保护就OK了!如果不没有写保护的那就可以考虑是否中病毒啥的了!还可用一下强力删除文件的软件去删除也可以!

西科在线netac E188的U盘如何量产

你好,1,用芯片精灵检测U盘的主控型号。2,然后到网上搜索主控型号的量产工具,下载了之后量产。

创维酷开U盘芯片朗科netac nt2039 0829 用众多量产工具都不行,也不能格式化,量产工具没有发现U盘,求救

这种情况我经常遇到,U盘使用过程中没有安全删除 直接拔出了后,在插入电脑里就变成0字节了打不开了。这种情况分两种1、软故障:由于突然拔出U盘造成U盘代码遗失FAT损坏提示插入磁盘或者格式化。这种情况上网上下载个软件如diskgenius 格式化下就好了。如果不行就找下量产工具试试。2、硬故障:由于突然拔出U盘电压不稳的情况有可能使U盘的主控烧了。晶振虚焊等U盘本身问题的故障造成。这种情况我建议您找专业的数据恢复公司,或者U盘维修公司试试维修下。千万不要自己尝试拆壳。如果没有重要数据我建议您还是换个U盘吧!谢谢如果我的回答您满意的话 肯请您采纳 如果还有不明白的您可以追问我

NETAC的 U235 16GB U盘 用什么量产工具?

用群联的PS2232量产工具

Netac k130 20G移动硬盘插到电脑上,移动硬盘开始亮红灯,后来绿灯亮了,但“我的电脑”上没有任何反应,

我不是很在行哦,嘻嘻!

netac 固态硬盘 怎么量产

需要看固态硬盘芯片,然后找对应芯片的量产工具。

朗科固态硬盘怎么样,Netac/朗科 N3

楼上是朗科请来的拖吧。。。。。。反正国内品牌我只用特科芯和影驰的其他都不知道是啥片

朗科(Netac)朗盛系列2.5英寸E195商务移动硬盘320G怎么样啊?可以用在电视上吗?

那得看有没有相关的插口,你可以去鱼凌商城找找有没有能接到电视上的

我想买个8G的U盘,朗科(Netac)U903 USB3.0高速优盘 怎么样?

优百特 用的多

寻一个U盘量产工具,感激不尽 产品制造商: Netac 产品型号: OnlyDisk

登陆Netac主页,搜索相同型号的产品,应能找到需要的工具。

我的Netac U盘格式化问题

用NT那个格式啦

netac z slim 512gb如何使用

netac z slim 512gb如何使用用法,直接插入bai手机的MicroUSB插孔,即可使用,可以使用Root Explorer等文件管理器查看到该盘。1)该软件不能放在本地电脑上,必须放在朗科移动硬盘上2)该软件不能放在朗科移动硬盘的子目录下,必须放在分区的根目录下。

朋友推荐了朗科Netac固态硬盘,他们家的硬盘怎么样,有用过的评价一下

固态硬盘还是尽量用大牌子,一些小产品用的不是白片就是黑片,你无从察觉,拆开不保,我用过铭瑄的固态,拆开之后用的是闪迪二手拆机正片。

朗科Netac固态硬盘售后怎么样?

深圳市朗科科技有限公司(Netac Technology Co., Ltd)是一家由留学归国人员于一九九九年创办、国外上市公司投资参股的高科技企业,致力于移动存储及无线数据解决方案产品的开发、生产和销售。目前该公司的主营业务是优盘等业务,在市场上也占据一定的份额。朗科固态硬盘价格相对较低,质量还行,售后我不知道,囊中羞涩的可以考虑

插在手机上的u盘突然显示Netacu盘不受支持

u盘不受支持,是因为设备没有读取功能。手机只有OTG功能的情况下才能够识别U盘。U盘的格式一般手机都是兼容的,U盘的格式现在常用的就是Fat32,和NTFS,这两个格式手机都是认的。

netac亮红灯怎么回事?

LOS光信号指示灯,红灯闪烁:表示设备未收到光信号。建议:1、重启光猫;2、检查线路是否有弯折角度过大;3、检查光纤接口是否松动,插紧接头

netac是什么牌子

朗科。1、朗科是大型闪存盘及闪存应用领域产品与解决方案的品牌。2、朗科拥有闪存盘、闪存应用及移动存储领域多项基础性及核心发明专利,涵盖移动存储,网络云存储,固态硬盘,电脑周边设备等系列产品。3、朗科拥有闪存盘、闪存应用及移动存储领域多项基础性及核心发明专利。4、朗科拥有自动化制造工厂,先进的生产设备、严苛的检测流程、完善的供应链以及高精尖的研发团队能够迅速交付优质的解决方案。5、朗科推出的以优盘为商标的闪存盘(OnlyDisk)是世界上首创的基于USB接口、采用闪存(FlashMemory)介质的新一代存储产品。

translational kinetic energy是什么意思

平动动能

internet education什么意思

Internet is getting into people"s life and becoming more and more popular. Experts are now working on setting up a national long-distance educational system in China to provide educational opportunities via Internet. In reality, the educational via Internet plan has been taking shape. Some universities have already got involved in regional long-distance education, catching the attention of many educators and computer experts worldwide. Others have just connected their campus computers for teaching and research, and provided more opportunities for learners. The Internet education will be developing dramatically. It"s estimated that computerized long-distance teaching networks will be available by 2010 for postgraduate education, vacational programs, teachers" training and employees" training. Moreover, it will soon cover all the corners of China and eventually win the worldwide popularity.麻烦采纳,谢谢!

moynet翻译中文什么包包

MONETabbr. mobile network 移动网络;multi-wavelength optical network 多波长光(纤)网络

IU李知恩的第一部电影作品《Persona》将于4月在Netflix上首映

《Persona》是一部短片,由四名不同的导演(林弼成、李京美、金宗宽、全高云)分别以不同的主题和概念讲述主角的故事。 IU在2011年的电视剧《Dream High》中开始了她的演艺生涯,并凭借《制作人》、《步步惊心:丽》和《最佳李顺心》等作品奠定了她的影视记录。除了在2017年的《真实世界》(Real)中客串,以及在韩国动画电影配音中担任配音角色外,《Persona》是IU的第一个电影项目。 林弼成,是众所周知的短片界超级明星,他的主题是关于一个年轻女子的故事“Not to Rot, But to Go On Forever.”李京美以其独特的导演风格和过人的才华而闻名,她将自己的故事命名为《Love Set》,讲述的是两个女人在网球场上倾尽全力的故事。金宗宽以捕捉日常生活美学而闻名,他的故事命名为《Walking the Night》,讲述的是一男一女在梦中相遇,分享他们白天说不出的话。全高云凭借2018年电影《Little Princess》获得新秀导演奖,他将自己的故事命名为《kiss Is a Sin》,讲述了年轻女孩的复仇故事。《Persona》将于4月登陆Netflix。

请以“Should Internet Slang Be Prohibited”为题写一篇英语短文

At present , Internet slang , such as "GG" "MM " has become popular among the teenagers . Some students who hold this point of view think that the Internet slang is fashionable and vivid .Meanwhile , it fulls of humor and intelligence . What" more , it is more convenient to chat online with our friends . But Some others disagree that . They consider the Internet slang is lack of thought ,which most people still can"t accept it . What" worse , sometimes using too much will contribute to misunderstanding between us . So , every coin has two sides .In my opinion , we should use Internet slang correctly in proper situation . After all , we are living in the information age .

如何用vb.net2003读写内存

使用FileStream读写文件文件头:using System;using System.Collections.Generic;using System.Text;using System.IO;读文件核心代码:byte[] byData = new byte[100];char[] charData = new char[1000];try{FileStream sFile = new FileStream("文件路径",FileMode.Open);sFile.Seek(55, SeekOrigin.Begin);sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.}catch (IOException e){Console.WriteLine("An IO exception has been thrown!");Console.WriteLine(e.ToString());Console.ReadLine();return;}Decoder d = Encoding.UTF8.GetDecoder();d.GetChars(byData, 0, byData.Length, charData, 0);Console.WriteLine(charData);Console.ReadLine();写文件核心代码:FileStream fs = new FileStream(文件路径,FileMode.Create);//获得字节数组byte [] data =new UTF8Encoding().GetBytes(String);//开始写入fs.Write(data,0,data.Length);//清空缓冲区、关闭流fs.Flush();fs.Close();2、使用StreamReader和StreamWriter文件头:using System;using System.Collections.Generic;using System.Text;using System.IO;StreamReader读取文件:StreamReader objReader = new StreamReader(文件路径); string sLine=""; ArrayList LineList = new ArrayList(); while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null&&!sLine.Equals("")) LineList.Add(sLine); } objReader.Close(); return LineList;StreamWriter写文件:FileStream fs = new FileStream(文件路径, FileMode.Create);StreamWriter sw = new StreamWriter(fs);//开始写入sw.Write(String);//清空缓冲区sw.Flush();//关闭流sw.Close();fs.Close();===================================================================================方式一:用FileStream//实例化一个保存文件对话框 SaveFileDialog sf = new SaveFileDialog(); //设置文件保存类型 sf.Filter = "txt文件|*.txt|所有文件|*.*"; //如果用户没有输入扩展名,自动追加后缀 sf.AddExtension = true; //设置标题 sf.Title = "写文件"; //如果用户点击了保存按钮 if(sf.ShowDialog()==DialogResult.OK) { //实例化一个文件流--->与写入文件相关联 FileStream fs = new FileStream(sf.FileName,FileMode.Create); //获得字节数组 byte [] data =new UTF8Encoding().GetBytes(this.textBox1.Text); //开始写入 fs.Write(data,0,data.Length); //清空缓冲区、关闭流 fs.Flush(); fs.Close(); }方式二:用StreamWriter//实例化一个保存文件对话框 SaveFileDialog sf = new SaveFileDialog(); //设置文件保存类型 sf.Filter = "txt文件|*.txt|所有文件|*.*"; //如果用户没有输入扩展名,自动追加后缀 sf.AddExtension = true; //设置标题 sf.Title = "写文件"; //如果用户点击了保存按钮 if (sf.ShowDialog() == DialogResult.OK) { //实例化一个文件流--->与写入文件相关联 FileStream fs = new FileStream(sf.FileName, FileMode.Create); //实例化一个StreamWriter-->与fs相关联 StreamWriter sw = new StreamWriter(fs); //开始写入 sw.Write(this.textBox1.Text); //清空缓冲区 sw.Flush(); //关闭流 sw.Close(); fs.Close(); }string FileName = Guid.NewGuid().ToString() + ".txt"; //GUID生成唯一文件名 StringBuilder ckpw = new StringBuilder(""凭证输出", "V800", "001", "东风随州专用汽车有限公司"," + ""F89自由项16", "F90审核日期:""); if (!FileIO.IsFolderExists(Server.MapPath("pzsc"))) FileIO.CreaterFolder(Server.MapPath(""), "file://pzsc/"); string filePath = Server.MapPath("pzsc") + "\" + FileName; System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, false, Encoding.GetEncoding("GB2312"));//创建的时候需要指定编码格式,默认是UTF-8,中文显示乱码 sw.WriteLine(ckpw.ToString()); sw.Close();方式三:用BinaryWriter//实例化一个保存文件对话框 SaveFileDialog sf = new SaveFileDialog(); //设置文件保存类型 sf.Filter = "txt文件|*.txt|所有文件|*.*"; //如果用户没有输入扩展名,自动追加后缀 sf.AddExtension = true; //设置标题 sf.Title = "写文件"; //如果用户点击了保存按钮 if (sf.ShowDialog() == DialogResult.OK) { //实例化一个文件流--->与写入文件相关联 FileStream fs = new FileStream(sf.FileName, FileMode.Create); //实例化BinaryWriter BinaryWriter bw = new BinaryWriter(fs); bw.Write(this.textBox1.Text); //清空缓冲区 bw.Flush(); //关闭流 bw.Close(); fs.Close(); }C#缓存流示例------>用缓存流复制文件C#文件处理操作必须先导入命名空间:using System.IO;背景:使用VS2005、一个按钮、一个窗体、C#缓存流、把D:KuGoo爱得太多.wma复制到D:并更名为love.wma,即:D:love.wma在按钮的Click事件中添加如下代码:private void button1_Click(object sender, EventArgs e) { //创建两个文件流 一个是源文件相关,另一个是要写入的文件 FileStream fs = new FileStream(@"D:KuGoo爱得太多.wma",FileMode.Open); FileStream fs2 = new FileStream(@"D:love.wma",FileMode.Create); //创建一个字节数组,作为两者之间的媒介 //好比两个人拿苹果,这个字节数组就好比一个篮子,一个人作死的把苹果送到篮子里面, //而我就可以作死得拿苹果,通过这个媒介我们互不干扰, //不需要互相等待【她往篮子里面放了苹果我才可以去拿】,提高了效率 byte[] data = new byte[1024]; //创建两个缓冲流,与两个文件流相关联 BufferedStream bs = new BufferedStream(fs); BufferedStream bs2= new BufferedStream(fs2); //fs作死的读,fs2作死的写,直到fs没有字节可读fs2就不写了 //好比,一个人作死的往篮子里面丢苹果,另一个人作死得往篮子里面拿苹果,直到篮子里面没有苹果拿了为止 //即-->那个人没有苹果往篮子里面放了 while(fs.Read(data,0,data.Length)>0) { fs2.Write(data,0,data.Length); fs2.Flush(); } //关闭流,好比两个人累了,都要休息 呵呵o(∩_∩)o... fs.Close(); fs2.Close(); }C#内存流示例----->用内存流来读取图片C#文件处理操作必须先导入命名空间:using System.IO;背景:一个窗体、一个pictureBox、一个lable[没有选择图片,lable的text为"图片未选择"],在pictureBox1的Click事件中添加如下代码:private void pictureBox1_Click(object sender, EventArgs e) { //实例化一个打开文件对话框 OpenFileDialog op = new OpenFileDialog(); //设置文件的类型 op.Filter = "JPG图片|*.jpg|GIF图片|*.gif"; //如果用户点击了打开按钮、选择了正确的图片路径则进行如下操作: if(op.ShowDialog()==DialogResult.OK) { //清空文本 this.label1.Text = ""; //实例化一个文件流 FileStream fs = new FileStream(op.FileName, FileMode.Open); //把文件读取到字节数组 byte[] data = new byte[fs.Length]; fs.Read(data, 0, data.Length); fs.Close(); //实例化一个内存流--->把从文件流中读取的内容[字节数组]放到内存流中去 MemoryStream ms = new MemoryStream(data); //设置图片框 pictureBox1中的图片 this.pictureBox1.Image = Image.FromStream(ms); } }

.net 读取文件 web程序如何读取文件 如何读取文件显示出来

不好意识,做任务的。

找不到文件netcfg.hlp是什么意思

找不到文件netcfg.hlp意思是找不到网络连接的帮助文件,如果宽带连接有问题时,系统会找到这个netcfg.hlp文件。宽带(Broadband)在基本电子和电子通信上,是描述电子线路能够同时处理较宽的频率范围。它是一种相对的描述方式,频带的范围愈大,也就是带宽愈高时,能够发送的数据也相对增加。电视天线的宽带则代表能够接收数量较多的频道。宽带网络可以分为三大部分:传输网、交换网、接入网。宽带网的相关技术也分为3类:传输技术、交换技术、接入技术。宽带传输网主要以SDH(同步数字系列)为基础的大容量光纤网络;宽带交换网是采用ATM(异步传输模式)技术的综合业务数字网;宽带接入网主要有光纤接入、铜线接入、混合光纤/铜线接入、无线接入等。

the internet英语作文带翻译

  你喜欢上网吗?你知道关于the internet的 英语 作文 有哪些呢?下面是我为大家精心挑选的the internet英语作文带翻译,希望对大家有所帮助。  the internet英语作文篇一   Internet is more and more widely used in our daily life.   Many people like to work on the computers.   You can search the internet whenever you like.You can find any information that you want.The internet is fast and seldom make mistakes.   People can play gameslisten to musicand enjoy watching movies on it.   With the develoment technology the computer and internet will be more and more popularand it will be benefit people in ways。   翻译:   互联网越来越广泛应用于我们的日常生活中。   许多人喜欢在电脑工作。只要你可以在互联网上搜索你喜欢的。你可以找到任何你想要的信息。互联网速度快很少犯错误。   人们可以玩游戏听音乐喜欢看电影。摘要技术计算机和互联网将会越来越普及它将人们的方式中获益。   the internet英语作文篇二   Do you know the Internet?Network is a big benefits for people.   On one occasion the teacher let us check the butterfly valley information I"m worried because I heard that have never heard of the butterfly valley is where.   I want to want to go just come on in nanjing aunt help me to check on the computer the information about the butterfly valley.   Less than half an hour my aunt took the information sent by text mode content is very rich.   The first time I realized the benefit of the network.   翻译:   你知道网络吗?网络对人们的好处很大。   有一次,老师让我们查蝴蝶谷的资料,我可急坏了,因为我连听说都没听说过蝴蝶谷是什么地方。   我想来想去,只有拜托在南京的姨妈帮我在电脑上查一查有关蝴蝶谷的资料。不到半个小时,姨妈就把资料用短信方式发了过来,内容十分丰富。   我第一次体会到网络的好处。   the internet英语作文篇三   Perhaps Internet is not diffcult .   In the cityeverbody knows Internet and likes it very much.   Because Internet is very interestingit has many games.We are able to do a lot of things using Internetfor examplewe can download information to help us study,and we can even buy products online.   You can also send e - mails and ring up.   So the Internet makes their life more colorful.   翻译:   或许互联网并不困难。   在城市里大家也知道互联网和非常喜欢它。因为互联网是非常有趣的它有许多游戏。我们可以使用互联网做很多事情。   例如我们可以下载信息来帮助我们学习。我们甚至可以网上购买产品。你也可以发送电子邮件和打电话。所以网络使他们的生活更加丰富多彩。the internet英语作文相关推荐: 1. 关于互联网的英语作文 2. 关于网络的高中英语作文带翻译 3. 关于网上交友的英语范文3篇 4. 高中英语作文关于网络对生活的影响范文3篇 5. 高中英语作文范文:互联网-The Internet

英语题 急急急!!! 介词填空1.hurry()2.()Saturdays 3()the school 4put the ball()the net

uponininatinaftertoin/intoonfor祝好,望采纳

net Framework 4.0安装未完成

安装问题:.NET Framework 4 安装未完成未安装 .NET Framework 4 RTW,或是 NET Framework 4 从 RC 到 RTW 的升级不完整。这都会导致在启用非 HTTP 激活时发生错误。若要解决此问题,请安装 .NET Framework 4 RTW 或修复现有安装。若要安装 .NET Framework 4 RTW,请转至 .NET Framework 4(http://go.microsoft.com/fwlink/?LinkId=177666)(可能为英文网页)。若要修复现有安装,请按照以下步骤操作:打开控制面板,然后打开“程序和功能”对话框。右键单击 Microsoft .NET Framework 4 Client Profile,然后单击“卸载/更改”。单击“将 .NET Framework 4 Client Profile 修复为初始状态”,然后单击“下一步”。修复成功后,单击“完成”。

internet slang 英语作文

不明白什么意思?

snatched、Netflix and chill、hunty…中文意思是?5个流行英文俚语(slang)

语言会随着时间的演变而不断演化,而创造出许多当代流行用语,若你还没学会,可能就落伍了! Go Natural English的讲师Gabby Wallace提出了5个2016年最流行的俚语(slang)。她对slang这个字的定义是:take a word we already have and use it in another way,也就是「旧词新用」的意思。快来学习这些单字,一起跟上潮流吧! 1. Extra explanation: trying too hard or being over the top 是负面用词,通常指的是:太超过、太过努力、太过头的意思。 2. OTP = One true pairing explanation: It is your favorite relationship in a fandom. 指的是一对你很喜欢的伴侣(couple),无论是夫妻、情人都行,常用来指名人或身边的朋友。 e.g. Beyonce and Jay-Z are my OTP. 3. Netflix and chill explanation: inviting someone over to your home for a romantic encounter, but pretending you"re just watching streaming movies and hang out. 指的是邀请某人到家里看电影,但其实内心有其他企图。 4. snatched explanation: describe something that looks really good 意思是「某样事物非常棒」,也等同于cool、on flick、on point。 5. hunty explanation: means your best friend, someone who always hang out with. 这个字指的是你最好、也最常一起出去玩的朋友。 extra, Extra 中文, Extra 意思, Extra 翻译, hunty, hunty 中文, hunty 意思, hunty 翻译, flix and chill, Netflix and chill 中文, Netflix and chill 意思, Netflix and chill 翻译, one true pairing, OTP, OTP 中文, OTP 意思, OTP 翻译, slang, snatched, snatched 中文, snatched 意思, snatched 翻译

在安装AutoCAD 2012时出现“win32 cabinet self-extractor已停止”的问题

这个是软件的自解压程序,解压路径最好不要出现中文,如果还不行,有可能是安装包的问题了。

安装vb出现 Win32 Cabinet Self-Extractor 已停止工作,怎么回事啊

你好,这样的情况你可以使用下360急救箱,下载,解压后,进入安全模式运行360系统急救箱自定义全盘扫描,查杀一遍,查杀完成后重启电脑。 然后再打开360系统急救箱,选择修复功能(修复选项可全选),立即修复,如果还是不能解决问题,那就重装系统吧。

这个Win32 Cabinet Self-Extractor是不是病毒??

是个一般的病毒,轻松搞定....病毒名称Win32WINDOWS下的PE病毒别名病毒长度危害程度传播途径行为类型WINDOWS下的PE病毒感染该病毒是一个WIN32PE感染型病毒,病毒感染普通PEEXE文件并把自己的代码加到EXE文件尾部.修改原程序的入口点以指向病毒体,病毒本身没有什么危害.但被感染的文件可能被破坏不能正常运行安全模式下杀毒

什么是"域名解析"?当用户访问internet资源时,为什么需要域名解析

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。

star和planet的区别

star是恒星,planet是行星,恒星就是自身能产热发光的星体,行星是一般来说本身是不发光产热,但像木星,其成分和恒星类似,且存在一定的发热功能。 行星围绕恒星运动,此处的恒星为单星,因为如果是双星或以上,则在形成双星的过程中没有物质形成行星。 古代人通过观测将星星分为两类,在天空中位置不发生变化的称为恒星,而运动轨迹很奇怪的就为行星(此处排除了彗星等小天体)。

网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR

网页显示原因有很多的,可能是病毒,也有可能是浏览器的原因。建议以下操作:1.打开浏览器,点击工具--》管理加载项,在那个地方禁用可疑的插件;2.使用360清理下,修复可能损坏的IE了;3.还原浏览器高级设置默认数值:工具-->Intetnet 选项-->高级-->还原默认设置;

网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR

1. 应用程序版本“Mozilla/4.0”表示:你使用Maxthon 2.0 浏览器使用 IE8 内核;2. 版本标识“MSIE 8.0”3. 平台自身的识别信息“Windows NT 5.1”表示“操作系统为 Windows XP”4. Trident内核版本“Trident/4.0”,浏览器的一种内核,还有一种就是WebKit内核5. .NET CLR 运行在微软公共语言运行库上

网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR

1. 应用程序版本“Mozilla/4.0”表示:你使用Maxthon 2.0 浏览器使用 IE8 内核;2. 版本标识“MSIE 8.0”3. 平台自身的识别信息“Windows NT 5.1”表示“操作系统为 Windows XP”4. Trident内核版本“Trident/4.0”,浏览器的一种内核,还有一种就是WebKit内核你可以这样操作:第一、打开电脑,选择电脑屏幕左下角“开始”—>“运行”。第二、输入regsvr32 jscript.dll后选择“确定” 第三、再次输入regsvr32 vbscript.dll 选择“确定” 第四、以上两次输入都会有注册成功提示。说明您已成功修复您的IE组件。再清空IE后打开网页即可。 最后点击IE浏览页的工具--Internet选项,删除cookies 再点删除文件,记得勾选所有脱机文件,就可以了如果还不行,升级你的浏览器.因为网站都基于新的浏览器来设计了

.net中static关键字的作用

c#语言中static有两种用法:一、为类定义一个静态方法,如class C{public static void staticf(){Console.WriteLine("staticf是类C的一个静态方法");}}二、定义一个静态类,如static class StaticClass{public static void staticf(){Console.WriteLine("静态类只能包含静态方法");}//静态类不能包含实例方法,否则会报错如下图:/*public void inntancef(){Console.WriteLine("静态类不能包含实例方法");}*/}完整代码如下:using System;namespace Test{class Program{static void Main(string[] args){C.staticf();StaticClass.staticf();Console.ReadKey();}}class C{public static void staticf(){Console.WriteLine("staticf是类C的一个静态方法");}}static class StaticClass{public static void staticf(){Console.WriteLine("静态类只能包含静态方法");}//静态类不能包含实例方法/*public void inntancef(){Console.WriteLine("静态类不能包含实例方法");}*/}}运行结果如图:

netsh wlan start hostednetwork是什么

开启你的电脑的wifi

ASP.NET 如何实现退出系统并且在系统退出前用confirm加以确定?

1 楼正解

使用.net 做的网页最后编译时一直出现加载母版页错误

你帖的是运行错误,不是编译错误应该是你没有编译程序吧?重新编译一下项目

asp.net 如何 include 其他文件

公共方法写成一个类库,在编译成DLL在所需要的项目中引用就可以了

asp.net搭建三层结构框架中如何添加global.asax

视图层,即aspx所在的根目录

asp.net页面顶部显示当前时间,但是页面不会刷新,代码要怎么实现

asp.net实现动态显示时间,无需用到javascrip,而是用了AJAX。Default.aspx页面:先拉一个ScriptManager控件到页面,然后拉一个UpdatePanel控件。UpdatePanel里面放一个Label用于显示时间,放一个timer控件用于控制时间的更新。注意Label与Label都要放到UpdatePanel控件里面。最后,timer控件的Interval属性设置为1000,让它每1秒执行一次即更新时间。 Default.aspx.cs页面:只需在 protected void Page_Load(object sender, EventArgs e) 里面输入 Label1.Text = DateTime.Now.ToString(); 即可。 下面是两个页面的源码: Default.aspx 代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="动态显示实时时间._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>动态显示实时时间</title> <style type="text/css"> .style1 { height: 183px; } </style> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> </div> <table style=" position: absolute; margin-left:200px; margin-right:200px; margin-top:100px; width:270px; height:78px; top: 15px; left: 10px;"> <tr> <td>动态显示实时时间</td> </tr> <tr><td class="style1"><asp:UpdatePanel ID="UpdatePanel1" runat="server" > <ContentTemplate> 当前时间是: <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <asp:Timer ID="Timer1" runat="server" Interval="1000"> </asp:Timer> </ContentTemplate> </asp:UpdatePanel> </td></tr> </table> </form> </body> </html> Default.aspx.cs 代码如下:using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; namespace 动态显示实时时间 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label1.Text = DateTime.Now.ToString(); } } }

json .net C# 判断某对象是否存在。

你直接判断==“”即可啊~

Internet信息服务器不能新建站点

1.iis6.0和5.0都不能装在XP系统中 2.下载了后不知道怎么安装 3.安装过程中弹出文件无法复制的对话框和什么系统被修改,是否继续的对话框,很是郁闷 4.安装后internet信息服务器中没有默认网站 5.安装后在地址栏中输入http://localhost出现Server Application Error 错误即500 错误 6.安装后默认网站无法启动 再说说这些问题的解决方法 问题一:1 在你装IIS之前需要知道你的系统是什么样的,HOME版的好想不能装,可好象网上也有装的方法,我们用过HOME版的,也就没试过,如果你是HOME版的可以去试试。如果你的系统是家庭版的,那就应该知道windows 98 只能装pws4.0;windows 2000 ---iis5.0;windows 2003---iis6.0;windows xp---iis5.1.如果你不是用系统盘安装,那就去网上下载你要装的IIS吧! 问题二:我的系统是xp的,所以我装的是5.1。下载后解压缩放在你硬盘的任何位置。然后开始/设置/控制面板/[添加/删除程序]/[添加/删除windows组建],然后在windows 组件向导中的internet 信息服务旁边的方框里打上勾,(注意:先别按下一步,点击详细信息看看里面的那些方框是不是都打上勾了,如果没有,要全选上,不然会出现问题4)。现在你按下一步,要求你插入光盘,没有盘,点击浏览,选择IIS存放的路径,然后确定,这里也许你就出现问题3了,如果没出现你很幸运! 问题三:如果安装时找不到文件,或文件无法复制,知道是什么原因吗?是windons自带游戏惹的祸。回到Windows组件向导,找到附件和工具,在其详细信息中去掉“游戏”的对勾(不然找不到zClientm.exe)。重新安装,是不是找到了?呵呵,这时会一边边的弹出个对话框让你重新选择路径,那就再选一次,不过要注意路径后面好象多了个i386,把它取了,确定。在这里也许会弹出说你的系统不修改的对话框,直接取消,这时你可以歇一下了,可能你已经安装成功了,不过不要太高兴,如果你没遇到后面的问题,你有点幸运! 问题四:如果看不到默认网站,那再打开[添加/删除windows组建]中的internet 信息服务,详细信息里面的勾全打上了,如果没有,重装吧! 问题五:出现这个问题也不知道什么原因,不知道你出现了没有,解决方法是:开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中,有一个“IIS Out-Of-Process Pooled”鼠标右键“属性”--“标识”--把“此用户”调整为“交互式用户--目前已登录的用户”。然后“确定”,再鼠标右键“属性”--“启动”。这里还有个问题就是找不到“IIS Out-Of-Process Pooled”,那里面根本没有!怎么 办?别急!开始/运行,输入msdtc -resetlog,然后重装IIS了,现在你应该能看到IIS Out-Of-Process Pooled了,高兴吧! 问题六:好不容易装上来,可地址栏中输入http://localhost又是网页无法显示,郁闷坏了!细心一看,默认网站没有启动,右键启动提示“服务器并未及时响应启动或控制请求”在网上查了下说是World Wide Web Publishing Services有问题,找到它果然它没启动,可启动它出现错误,启动不了,怎么办?再查吧,又说是要删个更新文件,最后还是弄出来了,正确方法是这样的:开始/设置/控制面板/[添加/删除程序],最上面有个“显示更新文件”打上勾,在里面找到KB939373,删除它。然后开始/设置/控制面板/管理工具/服务,找到World Wide Web Publishing Services,启动它,并将启动方式改为自动,再回到默认网站启动,看看,是不是能启动了,这时终于看到结果了。在上诉问题中,问题五是最容易发生的,所以要留心,在执行msdtc -resetlog指令时是没有反应的,所以你不要以为没有执行。另外,如果你用的是vs2008开发的网站,那么在运行时出现:名称以无效字符开头。处理资源 "http://localhost/ziboWeb/ZiboService.asmx" 时出错。第 1 行,位置: 2 <%@ WebService Language="vb" CodeBehind="~/App_Code/ZiboService.vb" Class="Service" %> -^ 解决办法:运行vs2005命令行(开始/程序/vs2005/tools),打开命令提示符,或者直接在cmd下键入该路径 如下 E:Program FilesMicrosoft Visual Studio 8VC> 运行aspnet_regiis.exe /i 就搞定了你试试这样行不行?

asp.net做母板页,怎么确定可编辑区域(本人菜鸟)

<%@ Page Title="模板创建" Language="C#" MasterPageFile="~/MultipleDocumentMaster.Master" AutoEventWireup="true" Codebehind="TemplateCreate.aspx.cs" Inherits="MultipleDocument.Web.WebForm1" %><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"></asp:Content>你在Content 之间放你的文本框 按钮 等标签即可

在ASP.net(C#)中用LinkButton控件实现文件附件的下载,要求点击按钮之后,可直接下载保存

建议你自己去找一个下载功能的源代码!现在这样说是不清楚的!

asp.net怎么赋值变量

ArrayList arr = new ArrayList(); SqlDataAdapter sda = new SqlDataAdapter("select * from tb_bd where username=:username", strcon);OracleParameter param = new OracleParameter();param = new OracleParameter(":username", OracleType.Char, 4); param.Value = username; arr.Add(param);

ASP.NET3.5网站开发实例教程?

ASP.NET3.5网站开发实例教程?首先运行visualstudio2015进入vs2015主画面找到左上角的文件依次找到文件->新建->项目在打开的新建项目窗口中,找到我们的framwork版本我们选择ASP.NET3.5选择ASP.NET3.5后,在左侧找到web项目选择ASP.NET空web应用程序接着定义我们的应用程序名称和位置设定完成后,选择确定,选择确定后,就会根据我们的设定,生成应用程式所需的文件和框架目录结构见下图因为我们是创建的空应用程序所有整个目录结构很简单我们可以右键单击我们的应用程序,选择属性来确认我们当前的框架是否使用的是ASP.NET3.5接着我们就可以开发我们的web应用程序了我们新建一个aspx页面简单的填入以下内容:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="WebForm1.aspx.cs"Inherits="WebApplication1.WebForm1"%>撰写代码完成后,保存并运行就可以了这样一个简单的web应用程序实例就创建完成了

asp.net怎样在页面中添加后台的引用

通过page指令。如:注解:GetStation.aspx.cs为后台文件名,TestPro.wyn.GetStation为后台文件命名空间<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetStation.aspx.cs" Inherits="TestPro.wyn.GetStation" %>

asp.net中报错:“未能加载类型form1”怎么解决

把CodeBehind改成Src试试 你是在vs下直接运行的还是在IIS下?

asp.net当我将一页面的内容复制到另外一个页面时(内容相似,只是功能不同),运行时报错?

ClassManage.aspx.cs里有 btnShow_Click 方法吗? 先确认下

怎么用net编译cs文件

操作如下:打开命令窗口->输入cmd到控制台->cd C:WINDOWSMicrosoft.NETFrameworkv1.1.4322转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目录下产生一个对应名字的.dll文件(前提:把.cs文件放到C:WINDOWSMicrosoft.NETFrameworkv1.1.4322目录下)csc命令的方式很多,请参考以下,------------------------------------译 File.cs 以产生 File.exe: csc File.cs 编译 File.cs 以产生 File.dll: csc /target:library File.cs编译 File.cs 并创建 My.exe: csc /out:My.exe File.cs通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件。输出为 File2.exe: csc /define:DEBUG /optimize /out:File2.exe *.cs编译当前目录中所有的 C# 文件,以产生 File2.dll 的调试版本。不显示任何徽标和警告: csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs将当前目录中所有的 C# 文件编译为 Something.xyz(一个 DLL): csc /target:library /out:Something.xyz *.cs 编译 File.cs 以产生 File.dll: csc /target:library File.cs这个就是我们使用最多的一个命令,其实可以简单的写成csc /t:library File.cs,另外的一个写法是csc /out:mycodebehind.dll /t:library mycodebehind.cs,这个可以自己指定输出的文件名。csc /out:mycodebehind.dll /t:library mycodebehind.cs mycodebehind2.cs,这个的作用是把两个cs文件装到一个.dll文件里。。。

asp.net中回发是怎么回事?高手解答下,越详细越好,言简意赅容易明白的亦可,谢啦

asp.net中,在你初次加载页面时,页面会执行PageLoad事件,称之为首次加载,当你首次加载完页面之后,此时在页面中,如果有一个提交请求的按钮,用户点击了这个按钮,发送请求到服务端,这个时候,PageLoad会被按钮的请求再次执行,这个被二次执行的PageLoad称之为“回发”。

ASP.NET中DataGrid控件应用技巧简述

   一.概述   运用ASP NET开发Web应用程序过程中 DataGrid是一个非常重要的控件 几乎任何和数据相关的表现都要用到该控件 所以熟练掌握DataGrid控件的应用技巧是每个Web开发人员所必备的基本能力   DataGrid控件能以表格的方式显示数据源中的数据 并提供了诸如分页 排序以及过滤等一些强大的内置功能 所以它能大大简化Web应用程序的开发过程 同时 开发者还可以通过运用各种不同的数据绑定列来自定义DataGrid控件显示数据的方式 这样就大大增强了DataGrid控件的功能 本文我就将向大家介绍如何运用其中的TemplateColumn EditCommandColumn HyperlinkColumn ButtonColumn以及BoundColumn等来自定义DataGrid控件显示数据的方式   二.BoundColumn数据列的应用   一般地 我们运用DataGrid控件开发数据驱动的Web应用程序时会以一行显示数据源中的某一条记录 而其中的一列则显示某个特定的字段值 DataGrid控件本身为我们提供了强大的功能 所以我们只需要以很少的代码便可以实现数据的显示功能 不过 这样也带来了一个问题 那就是我们如何来个性化显示数据的方式呢?显然DataList控件和Repeater控件在这个方面要强于DataGrid控件 不过如果我们放弃了DataGrid控件也就相当于放弃了其具有的强大功能 那么 我们如何运用DataGrid控件也来实现数据显示的自定义功能呢?首先 我们得把DataGrid控件根据数据源自动产生数据绑定列的功能关掉 方法很简单 就是将其AutoGenerateColumns属性设置为False即可 下面是这种方法的一个示例 <asp:DataGrid runat= server id= myDataGrid AutoGenerateColumns= False ></asp:DataGrid>   一旦其AutoGenerateColumns属性为False值 我们就得编程实现数据列的绑定了 在绑定数据列过程中 我们可以运用上面介绍的五中数据列中的任何一种 不过任何数据列都必须在<Columns></Columns>标记内被定义 这个标记能表明被定义的对象是一种数据列   下面我们首先来介绍BoundColumn数据列的应用 通过运用BoundColumn数据列 我们能根据自己的需求来动态地将数据源中的数据绑定到特定的数据列上并修改数据列的外观 比如我们可以更改各个列显示的次序 使DataGrid控件只显示某些字段的值而非全部字段的值 更改数据列的标题等等 BoundColumn数据列能设定DataField DataFormatString FooterText HeaderText HeaderImageUrl以及SortField等属性 而正是这些使得DataGrid控件的外观变得千变万化 多姿多彩   下面 我们来建立一个示例性的Web应用程序项目 该项目运用到了DataGrid控件 并且显示了如何在其中运用BoundColumn数据列来自定义数据的显示方式 下面是本项目的主要文件以及其代码后置文件的内容   WebForm aspx <%@ Page language= c# Codebehind= WebForm aspx cs AutoEventWireup= false Inherits= DataGridTemplates WebForm %><!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN ><HTML><HEAD><title>WebForm </title><meta name= GENERATOR Content= Microsoft Visual Studio ><meta name= CODE_LANGUAGE Content= C# ><meta name= vs_defaultClientScript content= JavaScript ><meta name= vs_targetSchema content= //schemas microsoft /intellisense/ie ></HEAD><body><form id= Form method= post runat= server ><asp:DataGrid runat= server id= myDataGrid AutoGenerateColumns= False BorderWidth= px Font Names= Verdana Arial sans serif Font Size= px BorderColor= # GridLines= Horizontal CellPadding= ><AlternatingItemStyle BackColor= #E E E ></AlternatingItemStyle><HeaderStyle Font Bold= True ForeColor= White BackColor= Teal ></HeaderStyle><Columns><asp:BoundColumn DataField= CustomerID HeaderText= ID ></asp:BoundColumn><asp:BoundColumn DataField= CompanyName HeaderText= Company Name ></asp:BoundColumn><asp:BoundColumn DataField= ContactName HeaderText= Contact Name ></asp:BoundColumn><asp:BoundColumn DataField= Address HeaderText= Address ></asp:BoundColumn><asp:BoundColumn DataField= City HeaderText= City ></asp:BoundColumn><asp:BoundColumn DataField= Region HeaderText= Region ></asp:BoundColumn><asp:BoundColumn DataField= PostalCode HeaderText= Postal Code ><HeaderStyle Wrap= False ></HeaderStyle></asp:BoundColumn></Columns></asp:DataGrid></form></body></HTML> WebForm aspx cs using System;using System Collections;using System ComponentModel;using System Data;using System Data SqlClient;using System Drawing;using System Web;using System Web SessionState;using System Web UI;using System Web UI WebControls;using System Web UI HtmlControls; namespace DataGridTemplates{/// <summary>/// WebForm 的摘要说明 /// </summary>public class WebForm : System Web UI Page{protected System Web UI WebControls DataGrid myDataGrid; private void Page_Load(object sender System EventArgs e){// 在此处放置用户代码以初始化页面if( !Page IsPostBack )BindData();} private void BindData(){SqlConnection con = new SqlConnection( server=localhost;database=Northwind;integrated security=true; );SqlCommand cmd = new SqlCommand( SELECT * FROM Customers con ); try{con Open();myDataGrid DataSource = cmd ExecuteReader();myDataGrid DataBind();con Close();}catch( Exception ) {}if( con != null && con State == ConnectionState Open )con Close();} #region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){//// CODEGEN 该调用是 ASP NET Web 窗体设计器所必需的 //InitializeComponent();base OnInit(e);} /// <summary>/// 设计器支持所需的方法 不要使用代码编辑器修改/// 此方法的内容 /// </summary>private void InitializeComponent(){ this Load += new System EventHandler(this Page_Load);}#endregion}}   项目创建完毕 在浏览器中运行的效果如图 所示 图 DataGrid控件中运用BoundColumn数据列显示数据的效果    三.HyperlinkColumn数据列以及ButtonColumn数据列的应用   上面我向大家介绍了BoundColumn数据列的应用 而其它的两种数据列 HyperlinkColumn数据列以及ButtonColumn数据列的应用方式与之相差无几   HyperlinkColumn数据列包含了DataTextField属性以及DataNavigateUrlField属性等 前者可以用于指定要显示的文本内容 而后者则用于指定超链接 同时HyperlinkColumn数据列还包含了一个可用于指定文本显示格式的DataNavigateUrlFormatString属性   像HyperlinkColumn数据列那样ButtonColumn数据列也提供了DataTextField属性以及DataTextFormatString属性 同时它还提供了一个CommandName属性 该属性能指定按钮被点击时服务器端的响应动作 而此时DataGrid控件的OnItemCommand属性必须指向一个相应的方法 该方法在按钮被点击时会自动被调用 DataGrid控件中的一行可以包含多个ButtonColumn数据列 每个数据列中的按钮消息响应函数都是OnItemCommand属性所对应的方法 而不同的按钮是根据其CommandName属性来区分函数所应执行的不同部分的 ButtonColumn数据列还提供了一个ButtonType属性以指定按钮的外观 该属性包括两种可取值 LinkButton(默认)和PushButton   下面我们在原来解决方案的基础上再添加一个新的Web应用程序项目 并在其中运用DataGrid控件的BoundColumn数据列 HyperlinkColumn数据列以及ButtonColumn数据列 下面是本项目的主要文件以及其代码后置文件的内容   WebForm aspx <%@ Page language= c# Codebehind= WebForm aspx cs AutoEventWireup= false Inherits= DataGridTemplates WebForm %><!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN ><HTML><HEAD><title>WebForm </title><meta name= GENERATOR Content= Microsoft Visual Studio ><meta name= CODE_LANGUAGE Content= C# ><meta name= vs_defaultClientScript content= JavaScript ><meta name= vs_targetSchema content= //schemas microsoft /intellisense/ie ></HEAD><body MS_POSITIONING= FlowLayout ><form id= Form method= post runat= server ><asp:DataGrid id= myDataGrid runat= server HeaderStyle Font Bold= True Cellpadding= BorderWidth= px AutoGenerateColumns= False GridLines= Horizontal Font Names= Verdana Arial sans serif Font Size= px BorderStyle= Solid ><AlternatingItemStyle BackColor= #EFEFEF ></AlternatingItemStyle><ItemStyle Font Size= X Small ></ItemStyle><HeaderStyle Font Bold= True ForeColor= White BackColor= Teal ></HeaderStyle><Columns><asp:BoundColumn DataField= CustomerID HeaderText= ID ></asp:BoundColumn><asp:HyperLinkColumn DataNavigateUrlField= Url DataTextField= CompanyName HeaderText= Comapny Name ></asp:HyperLinkColumn><asp:ButtonColumn Text= Get Details ButtonType= PushButton CommandName= GetDetails ></asp:ButtonColumn></Columns></asp:DataGrid></form></body></HTML> WebForm aspx cs using System;using System Collections;using System ComponentModel;using System Data;using System Data SqlClient;using System Drawing;using System Web;using System Web SessionState;using System Web UI;using System Web UI WebControls;using System Web UI HtmlControls; namespace DataGridTemplates {/// <summary>/// WebForm 的摘要说明 /// </summary>public class WebForm : System Web UI Page{protected System Web UI WebControls DataGrid myDataGrid; private void Page_Load(object sender System EventArgs e){// 在此处放置用户代码以初始化页面if( !Page IsPostBack )BindData();} private void BindData(){SqlConnection con = new SqlConnection( server=localhost;integrated security=true;database=Northwind );SqlCommand cmd = new SqlCommand( SELECT * // + CustomerID + As Url FROM Customers con );try{con Open();myDataGrid DataSource = cmd ExecuteReader();myDataGrid DataBind();con Close();}catch( Exception ) {}if( con != null && con State == ConnectionState Open )con Close();} #region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){//// CODEGEN 该调用是 ASP NET Web 窗体设计器所必需的 //InitializeComponent();base OnInit(e);} /// <summary>/// 设计器支持所需的方法 不要使用代码编辑器修改/// 此方法的内容 /// </summary>private void InitializeComponent(){ this myDataGrid ItemCommand += new System Web UI WebControls DataGridCommandEventHandler(this myDataGrid_ItemCommand);this Load += new System EventHandler(this Page_Load);}#endregion private void myDataGrid_ItemCommand(object source System Web UI WebControls DataGridCommandEventArgs e){if( e CommandName == GetDetails )Response Redirect( WebForm aspx?id= + e Item Cells[ ] Text );}}}   项目创建完毕 在浏览器中运行的效果如图 所示 图 DataGrid控件中运用HyperlinkColumn以及ButtonColumn数据列显示数据的效果    四.TemplateColumn数据列的应用   DataGrid控件中的TemplateColumn数据列可以说是功能极其强大的 灵活地运用它就能使得DataGrid控件显示数据的方式变得多种多样 TemplateColumn数据列主要为我们提供了以下四种数据列模板   ·HeaderTemplate   ·ItemTemplate   ·EditItemTemplate   ·FooterTemplate   其中HeaderTemplate是用于显示DataGrid控件的首行中的文本 图片或是绑定数据的 FooterTemplate的功能与HeaderTemplate的功能类似 不过它是用于显示尾行中的内容的 EditItemTemplate是应用于具有编辑功能的数据列的 任何运用了该模板的数据列的数据能被用户编辑并在适当时候更新到数据源中   ItemTemplate允许你建立具有完全自定义数据显示方式的数据列 通过运用<%# Container DataItem( [FieldName] ) %>或<%# DataBinder Eval(Container DataItem [FieldName] { :[FormatString]} ) %>两种数据绑定语法你就可以将数据源中的某列数据绑定到相应的数据列中并赋予完全自定义的显示方式   下面我们在第三步中建立的Web应用程序中添加一个新的Web页面-WebForm 该页面能显示公司的详细信息 也就是在图 中的按钮被点击时浏览器会导向到的页面 它能根据用户的选择显示相应公司的详细信息 方法就是判断Request QueryString内的信息 如果其中包含了一个 id 名/值对 则根据其中的值选择相对应的公司信息并显示在页面中 如果没有包含任何 id 值的信息则从数据表中选取所有公司的信息并显示在页面中 同时还要指出的是 在一个DataGrid控件中你可以将多种类型的数据列结合起来一起使用 并根据不同的需要选择合适的数据列显示相应的数据 下面是本页面的HTML文件以及其代码后置文件的内容   WebForm aspx <%@ Page language= c# Codebehind= WebForm aspx cs AutoEventWireup= false Inherits= DataGridTemplates WebForm %><!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN ><HTML><HEAD><title>WebForm </title><meta name= GENERATOR Content= Microsoft Visual Studio ><meta name= CODE_LANGUAGE Content= C# ><meta name= vs_defaultClientScript content= JavaScript ><meta name= vs_targetSchema content= //schemas microsoft /intellisense/ie ></HEAD><body MS_POSITIONING= FlowLayout ><form id= Form method= post runat= server ><asp:datagrid id= myDataGrid runat= server ItemStyle Font Size= x *** all HeaderStyle Font Bold= True HeaderStyle Font Size= x *** all AlternatingItemStyle BackColor= #EFEFEF Cellpadding= BorderWidth= AutoGenerateColumns= False BorderStyle= Solid GridLines= Horizontal BorderColor= # Font Names= Verdana Arial sans serif Font Size= px ><AlternatingItemStyle BackColor= #E E E ></AlternatingItemStyle><ItemStyle Font Size= X Small ></ItemStyle><HeaderStyle Font Size= X Small Font Bold= True ForeColor= White BackColor= Teal ></HeaderStyle><Columns><asp:TemplateColumn><HeaderTemplate><b>Company Detail</b></HeaderTemplate><ItemTemplate><table border= Cellpadding= Cellspacing= Width= % style= FONT SIZE: px; FONT FAMILY: Verdana Arial sans serif ><tr><td colspan= ><b><%# DataBinder Eval( Container DataItem CompanyName ) %></b></td></tr><tr><td width= % valign= top ><b>Contact:</b></td><td width= % valign= top nowrap><%# DataBinder Eval( Container DataItem ContactName ) %></td><td width= % valign= top ><b>Phone:</b></td><td width= % valign= top nowrap><%# DataBinder Eval( Container DataItem Phone ) %></td></tr><tr><td width= % valign= top ><b>Title:</b></td><td width= % valign= top ><%# DataBinder Eval( Container DataItem ContactTitle ) %></td><td width= % valign= top ><b>Fax:</b></td><td width= % valign= top nowrap><%# DataBinder Eval( Container DataItem Fax ) %></td></tr><tr><td width= % valign= top ><b>Address:</b></td><td width= % valign= top colspan= ><%# DataBinder Eval( Container DataItem Address ) %><br><%# DataBinder Eval( Container DataItem City ) %> <%# DataBinder Eval( Container DataItem Region ) %><%# DataBinder Eval( Container DataItem PostalCode ) %><br><%# DataBinder Eval( Container DataItem Country ) %></td></tr></table></ItemTemplate></asp:TemplateColumn></Columns></asp:datagrid></form></body></HTML> WebForm aspx cs using System;using System Collections;using System ComponentModel;using System Data;using System Data SqlClient;using System Drawing;using System Web;using System Web SessionState;using System Web UI;using System Web UI WebControls;using System Web UI HtmlControls; namespace DataGridTemplates {/// <summary>/// WebForm 的摘要说明 /// </summary>public class WebForm : System Web UI Page{protected System Web UI WebControls DataGrid myDataGrid; private void Page_Load(object sender System EventArgs e){// 在此处放置用户代码以初始化页面if( !Page IsPostBack )BindData();} private void BindData(){DataSet ds = new DataSet();SqlDataAdapter da;String strSQL; if( Request QueryString[ id ] == null )strSQL = SELECT * FROM Customers ;elsestrSQL = SELECT * FROM Customers WHERE CustomerID = + Request QueryString[ id ] ToString() + ; da = new SqlDataAdapter( strSQL server=localhost;integrated security=true;database=Northwind );da Fill( ds Customers );myDataGrid DataSource = ds Tables[ Customers ] DefaultView;myDataGrid DataBind();} #region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){//// CODEGEN 该调用是 ASP NET Web 窗体设计器所必需的 //InitializeComponent();base OnInit(e);} /// <summary>/// 设计器支持所需的方法 不要使用代码编辑器修改/// 此方法的内容 /// </summary>private void InitializeComponent(){ this Load += new System EventHandler(this Page_Load);}#endregion}}   新页面创建完毕 在浏览器中运行的效果如图 所示 图 DataGrid控件中运用TemplateColumn数据列显示数据的效果    五.总结 lishixinzhi/Article/program/net/201311/15737

教你30秒打造强类型ASP.NET数据绑定

数据绑定似乎是老掉牙的东西了。可是你知道吗,只需要一点小小的改动就可以替换Eval,摆脱字符串依赖并且大大提高性能。首先在code behind中加入以下方法protected virtual object ExpHelperTEntity, TREsult(FuncTEntity, TREsult func){ var itm = GetDataItem(); return func((TEntity)itm);}这段代码就是最核心的秘诀了,你完全可以忽视它到底在做什么。其实就是截获每一个被绑定的数据项,并进行强类型转换。假设我们定义了学生类public class Student{ public string Name { get; set; } public int Age { get; set; }}如果希望在页面中使用强类型访问学生类而不是用Eval,定义专门访问学生的方法protected object StuTResult(FuncStudent, TResult func){ return ExpHelperStudent, TResult(func);}大功告成,于是在页面里我们就能这样绑定数据了ulasp:Repeater ID="rptStudents" runat="server"ItemTemplate li%#Stu(_=_.Name + "(" +_.Age+")")%/li/ItemTemplate/asp:Repeater/ul这样做有四大优势得到编译时检测享受智能提示强类型转换比Eval反射性能更高页面中的表示更丰富,如上我们可以自由拼接想要的字符串,非常像MVC更神奇的是可以支持多层嵌套哦。比如我们定义学生的集合Group类和访问器,然后就能用嵌套的Repeater显示分组信息了。完整程序如下%@ Page Language="C#" AutoEventWireup="true"%script runat="server" public class Student { public string Name { get; set; } public int Age { get; set; } } public class Group { public IEnumerableStudent Students { get; set; } } protected void Page_Load(object sender, EventArgs e) { //一群学生 var students = new[] { new Student{Name="mike",Age=23}, new Student{Name="jane", Age=12}, new Student{Name="frank",Age=25}, new Student{Name="susan",Age=32}, }; rptStudents.DataSource = students; //分两组 var group0 = new Group(); group0.Students = students.Take(2); var group1 = new Group(); group1.Students = students.Skip(2).Take(2); rptGroups.DataSource = new[] { group0, group1 }; DataBind(); } protected virtual object ExpHelperTEntity, TREsult(FuncTEntity, TREsult func) { var itm = GetDataItem(); return func((TEntity)itm); } //Student访问器 protected object StuTResult(FuncStudent, TResult func) { return ExpHelperStudent, TResult(func); } //Group访问器 protected object GrpTResult(FuncGroup, TResult func) { return ExpHelperGroup, TResult(func); }/script!DOCTYPE htmlhtmlbody %--单层--% ul asp:Repeater ID="rptStudents" runat="server" ItemTemplate li%#Stu(_=_.Name + "(" +_.Age+")")%/li /ItemTemplate /asp:Repeater /ul %--嵌套--% ul asp:Repeater ID="rptGroups" runat="server" ItemTemplate li ol asp:Repeater ID="Repeater1" runat="server" DataSource="%#Grp(_=_.Students) %" ItemTemplate li%#Stu(_=_.Name + "(" +_.Age+")")%/li /ItemTemplate /asp:Repeater /ol /li /ItemTemplate /asp:Repeater /ul/body/htmlPS本文是我以前写的没有发表的小发明,现在拿出来晒,主要是因为这个方法好像知道的人很少。希望大家能帮助测试一下性能,如果觉得合适大可以运用到实际工作中。更新:感谢Dacey 韦恩卑鄙 dudu老大等人的建议我已添加了扩展方法版本。喜欢扩展方法这种空降兵的感觉。现在只要添加一个static的帮助类,名字随你喜欢public static class Helper{ static object ExpHelperTEntity, TResult(Page page, FuncTEntity, TResult func) { var itm = page.GetDataItem(); return func((TEntity)itm); } public static object EvalT(this Page page, FuncT, object func) { return ExpHelperT, object(page, func); }}在页面中就可以%#this.EvalStudent(_ = _.Name + "(" + _.Age + ")")%注意this是必须的扩展方法具有很好的粘合性不需要一个父类定义通用方法泛型提供多个副本并且容易看清类型另外能很好的支持refactor,大家试试用ctrl+r+r改属性名

ASP. NET错误代码是什么?

一、网络上的一般说法1、ViewState 对象为Null。2、DateSet 空。3、sql语句或Datebase的原因导致DataReader空。4、声明字符串变量时未赋空值就应用变量。5、未用new初始化对象。6、Session对象为空。7、对控件赋文本值时,值不存在。8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。9、使用FindControl时,控件不存在却没有做预处理。10、重复定义造成未将对象引用设置到对象的实例错误.二、 (1)所设置的变量为空值或没有取到值,一般出现在传递参数的时候出现这个问题,也会在使用DataGrid或gridview或datalist等数据控件时出现.  (2)控件名称与codebehind里面的没有对应  (3)未用new初始化对象  (4)在程序中所引用的控件不存在  解决方法:  (1)使用try..catch...finally捕捉错误,或直接用response.write()输出所取的变量值  (2)查看代码中是否存在未初始化的变量三、SqlConnection.Open 未将对象引用设置到对象的实例在使用VS2003开发 ASP.NET程序时候 有时候操作 SqlConnection对象的Open()方法时候会出现未将对象引用设置到对象的实例。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 。。。。conn.Open();

ASP.NET C# 在线等 求高手介绍 这些是什么意思 务必详细 谢谢

第一行的意思是显示这个页面的信息 包括使用语言,指示控件的事件是否自动匹配,后置代码页,描述。第二行是引用用户控件,用户控件的地址,标签名称,自定义引用空间名称(大概这个意思)。使用方式 <uc1:Nav ID="nav" runat="server" /> 需要引用的地方写上这句 就会调用了。 我倒 他那个那么多字 你都看的懂吗?

ASP.NET3.5网站开发实例教程?

ASP.NET3.5网站开发实例教程?首先运行visualstudio2015进入vs2015主画面找到左上角的文件依次找到文件->新建->项目在打开的新建项目窗口中,找到我们的framwork版本我们选择ASP.NET3.5选择ASP.NET3.5后,在左侧找到web项目选择ASP.NET空web应用程序接着定义我们的应用程序名称和位置设定完成后,选择确定,选择确定后,就会根据我们的设定,生成应用程式所需的文件和框架目录结构见下图因为我们是创建的空应用程序所有整个目录结构很简单我们可以右键单击我们的应用程序,选择属性来确认我们当前的框架是否使用的是ASP.NET3.5接着我们就可以开发我们的web应用程序了我们新建一个aspx页面简单的填入以下内容:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="WebForm1.aspx.cs"Inherits="WebApplication1.WebForm1"%><!DOCTYPEhtml><htmlxmlns="l"><headrunat="server"><metahttp-equiv="Content-撰写代码完成后,保存并运行就可以了这样一个简单的web应用程序实例就创建完成了

ASP.NET Web Page应用深入探讨

   一 服务器脚本基础介绍   首先 我们先复习一下Web服务器页面的基本执行方式    客户端通过在浏览器的地址栏敲入地址来发送请求到服务器端    服务器接收到请求之后 发给相应的服务器端页面(也就是脚本)来执行 脚本产生客户端的响应 发送回客户端    客户端浏览器接收到服务器传回的响应 对Html进行解析 将图形化的网页呈现在用户面前   对于服务器和客户端的交互 通常通过下面几种主要方式    Form 这是最主要的方式 标准化的控件来获取用户的输入 Form的提交将数据发送给服务器端处理    QueryString 通过在Url后面带参数达到将参数传送给服务器 这种方式其实跟Get方式的Form是一样的    Cookies 这是一种比较特殊的方式 通常用于用户身份的确认    二 ASP Net简介   传统的服务器脚本语言 如ASP JSP等 编写服务器脚本的方式大同小异 都是在Html中嵌入解释或编译执行的代码 由服务器平台执行这些代码来生成Html 对于这类似的脚本 页面的生存周期实际上很简单 就是从开头至末尾 执行完所有的代码 当然用Java编写的Servlet可以编写更复杂的代码 但是从结构上看 和JSP没什么区别   ASP Net的出现 打破了这种传统 ASP Net采用了CodeBehind技术和服务器端控件 加入了服务器端的事件的概念 改变了脚本语言编写的模式 更加贴近Window编程 使Web编程更加简单 直观 但是我们要看到 ASP Net本身并没有改变Web编程的基本模式 只是封装了一些细节 提供了一些易用的功能 使代码更容易编写和维护 从某种程度上来说 将服务器端执行的方式复杂化了 这就是我们今天要讨论的主体 ASP Net Web Page的生存周期    三 ASP Net请求处理模式   我们说 ASP Net的Web Page并没有脱离Web编程的模式 所以它仍然是以 请求 >接收请求 >处理请求 >发送响应 这样的模式在工作 每一次与客户端的交互都会引发一次新的请求 所以一个Web Page的生命周期是以一次请求为基础的   当IIS收到客户端的请求的时候 会将请求交给aspnet_wp这个进程来处理 这个进程会查看请求的应用程序域是否存在 如果不存在则会创建一个 然后会创建一个Http运行时(HttpRuntime)来处理请求 这个运行时 为当前应用程序提供一组 ASP NET 运行时服务 (摘自MSDN)   HttpRuntime在处理请求的时候 会维护一系列的应用程序实例 也就是应用程序的Global类(global asax)的实例 这些实例在没有请求的时候 会存放在一个应用程序池中(实际上应用程序池由另一个类来维护 HttpRuntime只是简单的调用) 每接收到一个请求 HttpRuntime都会获取一个闲置的实例来处理请求 这个实例在请求结束前不会处理其他的请求 处理完毕之后 它又会回到池中 一个实例在其生存期内被用于处理多个请求 但它一次只能处理一个请求 (摘自MSDN)   当应用程序实例处理请求的时候 它会创建请求页面类的实例 执行它的ProcessRequest方法来处理请求 这个方法也就是Web Page生命周期的开始    四 Aspx页面与CodeBehind   在深入了解页面的生命周期之前 我们先来探讨一些Aspx与CodeBehind之间的关系   <%@ Page language= c# Codebehind= WebForm aspx cs Inherits= MyNamespace WebForm %>   相信使用过CodeBehind技术的朋友 对ASPX顶部的这句话应该是非常熟悉了 我们来一项一项的分析它   Page language= c# 这个就不用多说了吧   Codebehind= WebForm aspx cs 这一句表示绑定的代码文件   Inherits= MyNamespace WebForm 这句非常重要 它表示页面继承的类名称 也就是CodeBehind的代码文件中的类 这个类必须从System Web WebControls Page派生   从上面我们可以分析出 实际上CodeBehind中的类就是页面(ASPX)的基类 到这里 可能有些朋友要问了 在编写ASPX的时候 完全是按照ASP的方式 在Html中嵌入代码或者嵌入服务器控件 没有看到所谓 类 的影子啊?   这个问题实际上并不复杂 各位使用ASP Net编程的朋友可以到你们的系统盘 WINDOWSMicrosoft NETFramework<版本号>Temporary ASP NET Files这个目录下 这个下面就放了所有本机上存在的ASP Net应用程序的临时文件 子目录的名称就是应用程序的名称 然后再下去两层(为了保证唯一 ASP Net自动产生了两层子目录 并且子目录名称是随机的) 然后我们会发现有很多类似 yfy gjhc dll xeunj u dll 这样的链接库以及 komee bp cs falckav cs 这样的源文件 实际上这就是ASPX被ASP Net动态编译后的结果 打开这些源文件我们可以发现   public class WebForm_aspx MyNamespace WebForm System Web SessionState IRequiresSessionState   这就印证了我们前面的说法 ASPX是代码绑定类的子类 它的名称是ASPX文件名加上 _aspx 后缀 通过研究这些代码我们可以发现 实际上所有aspx中定义的服务器控件都是在这些代码中生成的 然后动态产生这些代码的时候 把原来在ASPX中嵌入的代码写在了相应的位置   当某个页面第一次被访问的时候 Http运行时就会使用一个代码生成器去解析ASPX文件并生成源代码并编译 然后以后的访问就直接调用编译后的dll 这也是为什么ASPX第一次访问的时候非常慢的原因   解释了这个问题 我们再来看另一个问题 我们在使用代码绑定的时候 在设计页面拖一个控件 然后切换到代码视图 就可以直接在Page_Load中使用这个控件了 既然控件是在子类中产生的 那为什么在父类中可以直接使用呢?   实际上我们可以发现 每当用VS Net拖一个控件到页面上 代码绑定文件中总是会类似这样的添加一个声明   protected System Web WebControls Button Button   我们可以发现这个字段被声明成protected 而且名字与ASPX中控件的ID一致 仔细想一想 这个问题就迎刃而解了 我们前面提到ASPX的源代码是被生成器动态生成和编译的 生成器会产生动态生成每一个服务器控件的代码 在生成的时候 它会检查父类有没有声明这个控件 如果声明了 它会添加类似下面的一句代码   this DataGrid = __ctrl   这个__ctrl就是生成该控件的变量 这时候它就把控件的引用赋给了父类中相应的变量 这也是为什么父类中的声明必须为protected(实际上也可以为public) 因为要保证子类能够调用   然后在执行Page_Load的时候 因为这时候父类的声明已经被子类中的初始化代码赋了值 所以我们就可以使用这个字段来访问对应的控件 了解了这些 我们就不会犯在代码绑定文件中的构造器里使用控件 造成空引用的异常的错误了 因为构造器是最先执行的 这时候子类的初始化还没有开始 所以父类中的字段是空值 至于子类是什么时候初始化我们放到后面讨论    五 页面生存周期   现在回到第三个标题中讲到的内容 我们讲到了HttpApplication的实例接收请求 并创建页面类的实例 实际上这个实例也就是动态编译的ASPX的类的一个实例 上一个标题中我们了解到ASPX实际上是代码绑定中类的子类 所以它继承了所有的protected方法   现在我们来看看VS Net自动生成的CodeBehind类的代码 以此来开始我们对页面生命周期的探讨   #region Web Form Designer generated code   override protected void OnInit(EventArgs e)   { // // CODEGEN 该调用是 ASP NET Web 窗体设计器所必需的   // InitializeComponent() base OnInit(e) }   /// <summary> /// 设计器支持所需的方法 不要使用代码编辑器修改/// 此方法的内容   /// </summary>   private void InitializeComponent()   { this DataGrid ItemDataBound += new System Web UI WebControls DataGridItemEventHandler(this DataGrid _ItemDataBound)   this Load += new System EventHandler(this Page_Load) }   #endregion   这个就是使用VS Net产生的Page的代码 我们来看 这里面有两个方法 一个是OnInit 一个是InitializeComponent 后者被前者调用 实际上这就是页面初始化的开始 在InitializeComponent中我们看到了控件的事件声明和Page的Load声明   下面是从MSDN中摘录的一段描述和一个页面生命周期方法和事件触发的顺序表    每次请求 ASP NET 页时 服务器就会加载一个 ASP NET 页 并在请求完成时卸载该页 页及其包含的服务器控件负责执行请求并将 HTML 呈现给客户端 虽然客户端和服务器之间的通讯是无状态的和断续的 但是必须使客户感觉到这是一个连续执行的过程    这种连续性假象是由 ASP NET 页框架 页及其控件实现的 回发后 控件的行为必须看起来是从上次 Web 请求结束的地方开始的 虽然 ASP NET 页框架可使执行状态管理相对容易一些 但是为了获得连续性效果 控件开发人员必须知道控件的执行顺序 控件开发人员需要了解 在控件生命周期的各个阶段 控件可使用哪些信息 保持哪些数据 控件呈现时处于哪种状态 例如 在填充页上的控件树之前控件不能调用其父级 下表提供了控件生命周期中各阶段的高级概述 有关详细信息 请点击表中的链接   阶段 控件需要执行的操作 要重写的方法或事件初始化 初始化在传入 Web 请求生命周期内所需的设置 请参阅处理继承的事件 Init 事件(OnInit 方法)   加载视图状态 在此阶段结束时 就会自动填充控件的 ViewState 属性 详见维护控件中的状态中的介绍 控件可以重写 LoadViewState 方法的默认实现 以自定义状态还原 LoadViewState 方法处理回发数据 处理传入窗体数据 并相应地更新属性 请参阅处理回发数据   注意 只有处理回发数据的控件参与此阶段 LoadPostData 方法 (如果已实现IPostBackDataHandler)   加载 执行所有请求共有的操作 如设置数据库查询 此时 树中的服务器控件已创建并初始化 状态已还原并且窗体控件反映了客户端的数据 请参阅处理继承的事件 Load 事件(OnLoad 方法)   发送回发更改通知 引发更改事件以响应当前和以前回发之间的状态更改 请参阅处理回发数据   注意 只有引发回发更改事件的控件参与此阶段 RaisePostDataChangedEvent 方法(如果已实现 IPostBackDataHandler)   处理回发事件 处理引起回发的客户端事件 并在服务器上引发相应的事件 请参阅捕获回发事件   注意 只有处理回发事件的控件参与此阶段 RaisePostBackEvent 方法(如果已实现 IPostBackEventHandler)   预呈现 在呈现输出之前执行任何更新 可以保存在预呈现阶段对控件状态所做的更改 而在呈现阶段所对的更改则会丢失 请参阅处理继承的事件 PreRender 事件(OnPreRender 方法)   保存状态 在此阶段后 自动将控件的 ViewState 属性保持到字符串对象中 此字符串对象被发送到客户端并作为隐藏变量发送回来 为了提高效率 控件可以重写 SaveViewState 方法以修改 ViewState 属性 请参阅维护控件中的状态 SaveViewState 方法呈现 生成呈现给客户端的输出 请参阅呈现 ASP NET 服务器控件 Render 方法处置 执行销毁控件前的所有最终清理操作 在此阶段必须释放对昂贵资源的引用 如数据库链接 请参阅 ASP NET 服务器控件中的方法   Dispose 方法卸载 执行销毁控件前的所有最终清理操作 控件作者通常在 Dispose 中执行清除 而不处理此事件 UnLoad 事件(On UnLoad 方法)   从这个表里面我们可以清楚的看到一个Page从装载到卸载之间调用的方法和触发的时间 接下来我们就深入的对其进行一些分析   看了上面的表 细心的朋友可能要问了 既然OnInit是页面生命周期的开始 而我们在上一讲中谈到控件在子类中被创建 那么在这里实际上在InitializeComponent方法中我们已经可以使用父类中声名的字段了 那么就意味着子类的初始化更在这之前?   在第三个标题中我们讲到了页面类的ProcessRequest才是真正意义上的页面声明周期的开始 这个方法是由HttpApplication调用的(其中调用的方式比较复杂 有机会单独撰文来讲解) 一个Page对请求的处理就是从这个方法开始 通过反编译 Net类库来查看源代码 我们发现在System Web WebControls Page的基类 System Web WebControls TemplateControl(它是页面和用户控件的基类)中定义了一个 FrameworkInitialize 虚拟方法 然后在Page的ProcessRequest中最先调用了这个方法 在生成器生成的ASPX的源代码中我们发现了这个方法的踪影 所有的控件都在这个方法中被初始化 页面的控件树就在这个时候产生   接下来的事情就简单了 我们来逐步分析页面生命周期的每一项    初始化   初始化对应Page的Init事件和OnInit方法   如果要重写 MSDN推荐的方式是重载OnInti方法 而不是增加一个Init事件的代理 这两者是有差别的 前者可以控制调用父类OnInit方法的顺序 而后者只能在父类的OnInit后执行(实际上是在OnInit里面被调用的)    加载视图状态   这是个比较重要的方法 我们知道 对于每次请求 实际上是由不同的页面类实例来处理的 为了保证两次请求间的状态 ASP Net使用了ViewState   LoadViewState方法就是从ViewState中获取上一次的状态 并依照页面的控件树的结构 用递归来遍历整个树 将对应的状态恢复到每一个控件上    处理回发数据   这个方法是用来检查客户端发回的控件数据的状态是否发生了改变 方法的原型   public virtual bool LoadPostData(string postDataKey NameValueCollection postCollection)   postDataKey是标识控件的关键字(也就是postCollection中的Key) postCollection是包含回发数据的集合 我们可以重写这个方法 然后检查回发的数据是否发生了变化 如果是则返回一个True 如果控件状态因回发而更改 则 LoadPostData 返回 true 否则返回 false 页框架跟踪所有返回 true 的控件并在这些控件上调用 RaisePostDataChangedEvent (摘自MSDN)   这个方法是System Web WebControls Control中定义的 也是所有需要处理事件的自定义控件需要处理的方法 对于我们今天讨论的Page来说 可以不用管它    加载   加载对应Load事件和OnLoad方法 对于这个事件 相信大多数朋友都会比较熟悉 用VS Net生成的页面中的Page_Load方法就是响应Load事件的方法 对于每一次请求 Load事件都会触发 Page_Load方法也就会执行 相信这也是大多数人了解ASP Net的第一步   Page_Load方法响应了Load事件 这个事件是在System Web WebControl Control类中定义的(这个类是Page和所有服务器控件的祖宗) 并且在OnLoad方法中被触发   很多人可能碰到过这样的事情 写了一个PageBase类 然后在Page_Load中来验证用户信息 结果发现不管验证是否成功 子类页面的Page_Load总是会先执行 这个时候很可能留下一些安全性的隐患 用户可能在没有得到验证的情况下就执行了子类中的Page_Load方法   出现这个问题的原因很简单 因为Page_Load方法是在OnInit中被添加到Load事件中的 而子类的OnInit方法中是先添加了Load事件 然后再调用base OnInit 这样就造成了子类的Page_Load被先添加 那么先执行了   要解决这个问题也很简单 有两种方法    ) 在PageBase中重载OnLoad方法 然后在OnLoad中验证用户 然后调用base OnLoad 因为Load事件是在OnLoad中触发 这样我们就可以保证在触发Load事件之前验证用户    ) 在子类的OnInit方法中先调用base OnInit 这样来保证父类先执行Page_Load    发送回发更改通知   这个方法对应第 步的处理回发数据 如果处理回发数据返回True 页面框架就会调用此方法来触发数据更改的事件 所以自定义控件的回发数据更改事件需要在此方法中触发   同样这个方法对于Page来说 没有太大的用处 当然你也可以在Page的基础上自己定义数据更改的事件 这当然也是可以的    处理回发事件   这个方法是大多数服务器控件事件引发的地方 当请求中包含控件事件触发的信息时(服务器控件的事件是另一个论题 我会在不久将来另外撰文讨论) 页面控件会调用相应控件的RaisePostBackEvent方法来引发服务器端的事件   这里又引出一个常见的问题   经常有网友问 为什么修改提交后的数据并没有更改   多数的情况都是他们没有理解服务器事件的触发流程 我们可以看出 触发服务器事件是在Page的Load之后 也就是说页面会先执行Page_Load 然后才会执行按钮(这里以按钮为例)的点击事件 很多朋友都是在Page_Load中绑定数据 然后在按钮事件中处理更改 这样做有一个毛病 Page_Load永远都是在按钮事件之前执行 那么意味着数据还没来得及更改 Page_Load中的数据绑定的代码就先执行了 原有的数据又赋给了控件 那么执行按钮事件的时候 实际上获得的是原有的数据 那么更新当然就没有效果了   更改这个问题也非常简单 比较合理的做法是把数据绑定的代码写成一个方法 我们假设为BindData   private void BindData()   { //绑定数据}   然后修改PageLoad   private void Page_Load( object sender EventArgs e )   { if( !IsPostBack )   { BindData() //在页面第一次访问的时候绑定数据}   最后在按钮事件中   private Button _Click( object sender EventArgs e )   { //更新数据BindData() //重新绑定数据}    预呈现   最终请求的处理都会转变为发回服务器的响应 预呈现这个阶段就是执行在最终呈现之前所作的状态的更改 因为在呈现一个控件之前 我们必须根据它的属性来产生Html 比如Style属性 这是最典型的例子 在预呈现之前 我们可以更改一个控件的Style 当执行预呈现的时候 我们就可以把Style保存下来 作为呈现阶段显示Html的样式信息    保存状态   这个阶段是针对加载状态的 我们多次提到 请求之间是不同的实例在处理 所以我们需要把本次的页面和控件的状态保存起来 这个阶段就是把状态写入ViewState的阶段    呈现   到这里 实际上页面对请求的处理基本就告一段落了 在Render方法中 会递归整个页面的控件树 依次调用Render方法 把对应的Html代码写入最终响应的流中    处置   实际上就是Dispose方法 在这个阶段会释放占用的资源 例如数据库连接    卸载   最后 页面会执行OnUnLoad方法触发UnLoad事件 处理在页面对象被销毁之前的最后处理 实际上ASP Net提供这个事件只是设计上的考虑 通常资源的释放都会在Dispose方法中完成 所以这个方法也变成鸡肋了   我们简单的介绍了页面的生存周期 对于服务器端事件的处理做了不太深入的讲解 今天主要是想大家了解页面执行的周期 对于服务器控件的事件和生存期我会在后续在写一些文章来探讨 lishixinzhi/Article/program/net/201311/13003

怎么用net编译cs文件

操作如下:打开命令窗口->输入cmd到控制台->cd C:WINDOWSMicrosoft.NETFrameworkv1.1.4322转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目录下产生一个对应名字的.dll文件(前提:把.cs文件放到C:WINDOWSMicrosoft.NETFrameworkv1.1.4322目录下)csc命令的方式很多,请参考以下,------------------------------------译 File.cs 以产生 File.exe: csc File.cs 编译 File.cs 以产生 File.dll: csc /target:library File.cs编译 File.cs 并创建 My.exe: csc /out:My.exe File.cs通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件。输出为 File2.exe: csc /define:DEBUG /optimize /out:File2.exe *.cs编译当前目录中所有的 C# 文件,以产生 File2.dll 的调试版本。不显示任何徽标和警告: csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs将当前目录中所有的 C# 文件编译为 Something.xyz(一个 DLL): csc /target:library /out:Something.xyz *.cs 编译 File.cs 以产生 File.dll: csc /target:library File.cs这个就是我们使用最多的一个命令,其实可以简单的写成csc /t:library File.cs,另外的一个写法是csc /out:mycodebehind.dll /t:library mycodebehind.cs,这个可以自己指定输出的文件名。csc /out:mycodebehind.dll /t:library mycodebehind.cs mycodebehind2.cs,这个的作用是把两个cs文件装到一个.dll文件里。。。

复杂网络介绍(Network Analysis)

网络,数学上称为图,最早研究始于1736年欧拉的哥尼斯堡七桥问题,但是之后关于图的研究发展缓慢,直到1936年,才有了第一本关于图论研究的著作。 1960年,数学家Erdos和Renyi建立了随机图理论,为构造网络提供了一种新的方法。在这种方法中,两个节点之间是否有边连接不再是确定的事情,而是根据一个概率决定,这样生成的网络称作随机网络。随机图的思想主宰复杂网络研究长达四十年之久,然而,直到近几年,科学家们对大量的现实网络的实际数据进行计算研究后得到的许多结果,绝大多数的实际网络并不是完全随机的,既不是规则网络,也不是随机网络,而是具有与前两者皆不同的统计特征的网络。这样的一u2022些网络称为复杂网络,对于复杂网络的研究标志着网络研究的第三阶段的到来。 1998年,Watts及其导师Strogatz在Nature上的文章《Collective Dynamics of Small-world Networks》,刻画了现实世界中的网络所具有的大的凝聚系数和短的平均路径长度的小世界特性。随后,1999年,Barabasi及其博士生Albert在Science上的文章《Emergence of Scaling in Random Networks》提出无尺度网络模型(度分布为幂律分布),,刻画了实际网络中普遍存在的“富者更富”的现象,从此开启了复杂网络研究的新纪元。 随着研究的深入,越来越多关于复杂网络的性质被发掘出来,其中很重要的一项研究是2002年Girvan和Newman在PNAS上的一篇文章《Community structure in social and biological networks》,指出复杂网络中普遍存在着聚类特性,每一个类称之为一个社团(community),并提出了一个发现这些社团的算法。从此,热门对复杂网络中的社团发现问题进行了大量研究,产生了大量的算法。 许多复杂系统都可以建模成一种复杂网络进行分析,比如常见的电力网络、航空网络、交通网络、计算机网络以及社交网络等等。复杂网络不仅是一种数据的表现形式,它同样也是一种科学研究的手段。 复杂网络的定义 钱学森对于复杂网络给出了一种严格的定义: 复杂网络具有网络平均路径长度较小、聚类系数较大、节点度分度服从幂律分布等相同特性 言外之意,复杂网络就是指一种呈现高度复杂性的网络,其特点主要具体体现在如下几个方面: 小世界特性(Small world theory)又被称之为是六度空间理论或者是六度分割理论(Six degrees of separation)。小世界特性指出:社交网络中的任何一个成员和任何一个陌生人之间所间隔的人不会超过六个。 在考虑网络特征的时候,通常使用两个特征来衡量网络: 对于规则网络,任意两个点(个体)之间的特征路径长度长(通过多少个体联系在一起),但聚合系数高(你是朋友的朋友的朋友的几率高)。对于随机网络,任意两个点之间的特征路径长度短,但聚合系数低。而小世界网络,点之间特征路径长度小,接近随机网络,而聚合系数依旧相当高,接近规则网络。 复杂网络的小世界特性跟网络中的信息传播有着密切的联系。实际的社会、生态、等网络都是小世界网络,在这样的系统里,信息传递速度快,并且少量改变几个连接,就可以剧烈地改变网络的性能,如对已存在的网络进行调整,如蜂窝电话网,改动很少几条线路,就可以显著提高性能。 现实世界的网络大部分都不是随机网络,少数的节点往往拥有大量的连接,而大部分节点却很少,节点的度数分布符合幂率分布,而这就被称为是网络的无标度特性(Scale-free)。将度分布符合幂律分布的复杂网络称为无标度网络。 例如,知乎中用户的fellow数的分布情况: 无标度特性反映了复杂网络具有严重的异质性,其各节点之间的连接状况(度数)具有严重的不均匀分布性:网络中少数称之为Hub点的节点拥有极其多的连接,而大多数节点只有很少量的连接。少数Hub点对无标度网络的运行起着主导的作用。从广义上说,无标度网络的无标度性是描述大量复杂系统整体上严重不均匀分布的一种内在性质。 其实复杂网络的无标度特性与网络的鲁棒性分析具有密切的关系。无标度网络中幂律分布特性的存在极大地提高了高度数节点存在的可能性,因此,无标度网络同时显现出针对随机故障的鲁棒性和针对蓄意攻击的脆弱性。这种鲁棒且脆弱性对网络容错和抗攻击能力有很大影响。 研究表明,无标度网络具有很强的容错性,但是对基于节点度值的选择性攻击而言,其抗攻击能力相当差,高度数节点的存在极大地削弱了网络的鲁棒性,一个恶意攻击者只需选择攻击网络很少的一部分高度数节点,就能使网络迅速瘫痪。 人以类聚,物以群分。复杂网络中的节点往往也呈现出集群特性。例如,社会网络中总是存在熟人圈或朋友圈,其中每个成员都认识其他成员。集群程度的意义是网络集团化的程度;这是一种网络的内聚倾向。连通集团概念反映的是一个大网络中各集聚的小网络分布和相互联系的状况。例如,它可以反映这个朋友圈与另一个朋友圈的相互关系。 下图为网络聚集现象的一种描述: 真实网络所表现出来的小世界特性、无尺度幂律分布或高聚集度等现象促使人们从理论上构造出多样的网络模型,以解释这些统计特性,探索形成这些网络的演化机制。本节介绍了几个经典网络模型的原理和构造方法,包括ER随机网络模型、BA无尺度网络模型和小世界模型。 ErdOs-Renyi随机网络模型(简称ER随机网络模型)是匈牙利数学家Erdos和Renyi提出的一种网络模型。1959年,为了描述通信和生命科学中的网络,Erdos和Renyi提出,通过在网络节点间随机地布置连接,就可以有效地模拟出这类系统。这种方法及相关定理的简明扼要,导致了图论研究的复兴,数学界也因此出现了研究随机网络的新领域。ER随机网络模型在计算机科学、统计物理、生命科学、通信工程等领域都得到了广泛应用。 ER随机网络模型是个机会均等的网络模型。在该网络模型中,给定一定数目的个体(节点),它和其他任意一个个体(节点)之间有相互关系(连接)的概率相同,记为户。因为一个节点连接k个其他节点的概率,会随着k值的增大而呈指数递减。这样,如果定义是为每个个体所连接的其他个体的数目,可以知道连接概率p(k)服从钟形的泊松(Poisson)分布,有时随机网络也称作指数网络。 随机网络理论有一项重要预测:尽管连接是随机安置的,但由此形成的网络却是高度民主的,也就是说,绝大部分节点的连接数目会大致相同。实际上,随机网络中连接数目比平均数高许多或低许多的节点,都十分罕见。 在过去40多年里,科学家习惯于将所有复杂网络都看作是随机网络。在1998年研究描绘万维网(以网页为节点、以超级链接为边)的项目时,学者们原以为会发现一个随机网络:人们会根据自己的兴趣,来决定将网络文件链接到哪些网站,而个人兴趣是多种多样的,可选择的网页数量也极其庞大,因而最终的链接模式将呈现出相当随机的结果。 然而,事实并非如此。因为在万维网上,并非所有的节点都是平等的。在选择将网页链接到何处时,人们可以从数十亿个网站中进行选择。然而,我们中的大部分人只熟悉整个万维网的一小部分,这一小部分中往往包含那些拥有较多链接的站点,因为这样的站点更容易为人所知。只要链接到这些站点,就等于造就或加强了对它们的偏好。这种“择优连接(Preferential Attachment)”的过程,也发生在其他网络中。在Internet上,那些具有较多连接的路由器通常也拥有更大的带宽,因而新用户就更倾向于连接到这些路由器上。在美国的生物技术产业内,某些知名公司更容易吸引到同盟者,而这又进一步加强了它在未来合作中的吸引力。类似地,在论文引用网络(论文为节点,引用关系为边)中,被引用次数较多的科学文献,会吸引更多的研究者去阅读并引用它。针对这些网络的“择优连接”的新特性,学者提出了BA无尺度网络模型。 无尺度网络的发现,使人类对于复杂网络的认识进入了一个新的天地。无尺度网络的最主要特征是节点的度分布服从幂次定律。BA模型是无尺度网络(Scale-free Network)的第一个抽象模型。由于考虑了系统的成长性(Growth)和择优连接性,BA模型给我们带来了很多启发,并且可以应用于多种实际网络。但是BA模型的两个基本假定,对于解释许多现实中的现象来说过于简单,与现实的网络还有较大的距离。 有学者试图对BA模型进行扩展,即根据现实中的网络,增添某些假定,以便进一步探索复杂网络系统的规律。对BA模型的扩充可以考虑三个因素:择优选择的成本、边的重新连接、网络的初始状态。扩充的BA模型可以更好地模拟现实世界中的网络现象。 1999年,丸Barabasi和兄Albert在对互联网的研究中发现了无尺度网络,使人类对于复杂网络系统有了全新的认识。过去,人们习惯于将所有复杂网络看作是随机网络,但Barabasi和Albert发现互联网实际上是由少数高连接性的页面组织起来的,80%以上页面的链接数不到4个。只占节点总数不到万分之一的极少数节点,却有1000个以上的链接。这种网页的链接分布遵循所谓的“幂次定律”:任何一个节点拥有是条连接的概率,与1/k成正比。它不像钟形曲线那样具有一个集中度很高的峰值,而是一条连续递减的曲线。如果取双对数坐标系来描述幂次定律,得到的是一条直线。 Scale-free网络指的是节点的度分布符合幂律分布的网络,由于其缺乏一个描述问题的特征尺度而被称为无尺度网络。其后的几年中,研究者们在许多不同的领域中都发现了无尺度网络。从生态系统到人际关系,从食物链到代谢系统,处处可以看到无尺度网络。 为什么随机模型与实际不相符合呢?Barabasi和Albert在深入分析了ER模型之后,发现问题在于ER模型讨论的网络是一个既定规模的,不会继续扩展的网络。正是由于现实当中的网络往往具有不断成长的特性,早进入的节点(老节点)获得连接的概率就更大。当网络扩张到一定规模以后,这些老节点很容易成为拥有大量连接的集散节点。这就是网络的“成长性”。 其次,ER模型中每个节点与其他节点连接时,建立连接的概率是相同的。也就是说,网络当中所有的节点都是平等的。这一情况与实际也不相符。例如,新成立的网站选择与其他网站链接时,自然是在人们所熟知的网站中选择一个进行链接,新的个人主页上的超文本链接更有可能指向新浪、雅虎等著名的站点。由此,那些熟知的网站将获得更多的链接,这种特性称为“择优连接”。这种现象也称为“马太效应(Matthew Effect)”或“富者更富(Rich Get Richer)”。 “成长性”和“择优连接”这两种机制解释了网络当中集散节点的存在。 BA无尺度模型的关键在于,它把实际复杂网络的无尺度特性归结为增长和优先连接这两个非常简单的机制。当然,这也不可避免地使得BA无尺度网络模型和真实网络相比存在一些明显的限制。比如,一些实际网络的局域特性对网络演化结果的影响、外界对网络节点及其连接边删除的影响等。 一般自然的或者人造的现实网络与外界之间有节点交换,节点间连接也在不断变化,网络自身具有一定的自组织能力,会对自身或者外界的变化作出相应的反应。因此,在BA模型基础上,可以把模型的动力学过程进行推广,包括对网络中已有节点或者连接的随机删除及其相应的连接补偿机制。 对每一个时间步长,考虑如下三种假设: 复杂网络研究中一个重要的发现是绝大多数大规模真实网络的平均路径长度比想象的小得多,称之为“小世界现象”,或称“六度分离(Six Degrees of Separation)”。 所谓小世界现象,是来自社会网络(Social Networks)中的基本现象,即每个人只需要很少的中间人(平均6个)就可以和全世界的人建立起联系。在这一理论中,每个人可看作是网络的一个节点,并有大量路径连接着他们,相连接的节点表示互相认识的人。 1998年,Watts和Strogatz引入了一个介于规则网络和完全随机网络之间的单参数小世界网络模型,称为WS小世界模型,该模型较好地体现了社会网络的小平均路径长度和大聚类系数两种现象。 WS小世界模型的构造方法如下: 在WS小世界模型中,p=0对应于规则网络,p=l则对应于完全随机网络,通过调节声的值就可以控制从规则网络到完全随机图的过渡。因此,WS小世界网络是介于规则网络和随机网络之间的一种网络。 WS小世界模型构造算法中的随机化过程有可能破坏网络的连通性。因此,Newman和Watts稍后提出了NW小世界模型。NW小世界模型的构造方法如下: NW模型只是将WS小世界模型构造中的“随机化重连”改为“随机化加边”。 NW模型不同于WS模型之处在于它不切断规则网络中的原始边,而是以概率p重新连接一对节点。这样构造出来的网络同时具有大的聚类数和小的平均距离。NW模型的优点在于其简化了理论分析,因为WS模型可能存在孤立节点,但NW模型不会。当户足够小和N足够大时,NW小世界模型本质上就等同于WS小世界模型。 小世界网络模型反映了实际网络所具有的一些特性,例如朋友关系网,大部分人的朋友都是和他们住在同一个地方,其地理位置不是很远,或只在同一单位工作或学习的同事和同学。另一方面,也有些人住得较远的,甚至是远在异国他乡的朋友,这种情形好比WS小世界模型中通过重新连线或在NW小世界模型中通过加入连线产生的远程连接。 小世界网络模型的主要特征之一是节点之间的平均距离随远程连接的个数而指数下降。对于规则网络,平均距离L可估计为L正比于N;而对于小世界网络模型,L正比于ln(N)/1n(K)。例如,对于一个千万人口的城市,人与人的平均接触距离是6左右,这使得生活人群之间的距离大大缩短。该模型由一个规则的环组成,通常是一个一维的几乎具有周期性边界条件的环(即环中每个节点几乎都连接到一固定数目的邻近节点)和少量的随机选取节点连接成的“捷径” (重新连接现存的边)。小世界网络同时具有“高网络聚集度”和“低平均路径”的特性。 从小世界网络模型中可以看到,只要改变很少的几个连接,就可以剧烈的改变网络的性能。这样的性质也可以应用其他网络,尤其是对已有网络的调整方面。例如,蜂窝电话网,改动很少几条线路(低成本、低工作量)的连接,就可以显著提高性能。也可以应用到互联网的主干路由器上,以改变流量和提高传输速度。同样的思路也可以应用到电子邮件的快速传递、特定Web站点的定位等。 如果学习复杂网络,目前认为最好的视频教程: 【社交计算与社会网络分析】Network Analysis 1) 复杂网络中聚类算法总结 2) Network Analysis复杂网络分析总结 3) 复杂网络和社会网络
 首页 上一页  2 3 4 5 6 7 8 9 10 11 12  下一页  尾页