Edi Wang

Azure Developer, Microsoft MVP

All Posts


JQuery AJAX读取ASP.NET WebService泛型方法

这几天在研究JQuery和WebService,被泛型返回类型搞死了。查了很多资料做实验终于搞定了。网上很多垃圾文章的作者都不亲手实验就到处拼凑把东西发上来,太不负责了。下面我发的是100%可用的,经过亲手实验的代码。 首先在WebService上要注意一点,一定记得把[System.Web.Script.Services.ScriptService]这行取消注释,这样脚本才可以调用到WebService。如图: 我用来测试的是我网站的友情链接列表,其WebService方法如下: [WebMethod] public List GetFriendLinks() { return new EdiBlog.Core.FriendLink().GetModelList(); } 经过测试,在浏览器中用GET访问是会爆掉的,所以我们用POST方法去调用。在默认的IIS和ASP. …

AJAX ASP.NET jQuery WebService

如何在VS2010里更改TFS的本地映射路径

今天GET一个项目文件的时候爆了,TFS说不允许路径长度超过256个字符。尼玛如此坑爹的限制,用户体验实在不好。无奈只能换个路径了。但显示路径的地方直接点击,是打开文件夹,而没有更改路径。尼玛研究了好久这个坑爹设置终于搞定了。这什么用户体验! 1. 在Workspace的下拉列表里,选择Workspaces... 2. 在弹出的对话框中选择Edit 3. 然后,就可以更改Local Folder的位置了 4. 最后,系统会建议你GET一下,于是重新GET就好了 关于TFS命名限制的描述可以在MSDN里找到: http://msdn.microsoft.com/zh-cn/library/aa980550%28v=vs.100%29.aspx

TFS Visual Studio

SQL Server 2012入门图解(二):SQL语句入门

上次介绍了如何在SQL Server中建立数据库和表,并且做备份和还原。这一次将用上次建立的School数据库做演示,学习SQL语句。本文为0基础入门级别,所以介绍的知识非常有限,例子也是最简单的,还是建议大家买本SQL的书学习。 先回顾一下,上次我们建立的数据库和表结构如下: School数据库里只有一张Student表,其中Id是自增长的主键。下面我们以它为例,来演示SQL语句的基本用法。 在SSMS中编写SQL脚本的方法是:点击工具栏上的“新建查询”,在编辑器中输入SQL脚本,选择一个正确的数据库,检查语法正确后,点击“执行”,最后在消息面板可以看到执行结果。如下图: 一、 使用SQL语句创建表 除了前面一片文章介绍的用图形化界面建表,我们还可以用SQL语句来创建表,创建Student表的SQL脚本如下: CREATE TABLE [dbo].[Student]( …

SQL SQL Server

ASP.NET中使用Response方式下载文件

今天在修改我博客的文件管理功能,尝试解决一直以来的一个问题。即IIS中没有注册MIME映射的文件类型,是无法直接用Http Get方式下载的,也就是不能点击超链接直接转向文件位置。比如7z压缩包,如果直接下载,会是这个样子: 后来我想到了以前Gridview输出Excel的方式,是通过Response传输字节流的。稍微查阅了一下,发现ASP.NET的Response对象现在有了一个新的方法:TransmitFile(),不过它在MSDN上的描述不是很详细。 具体做法是这样的: Response.ContentType = "application/x-compress"; Response.AddHeader("Content-Disposition", string.Format("attachment;filename=要输出的文件名")); Response. …

ASP.NET

ASP.NET中用Ctrl+S触发按钮事件

这个也是上礼拜印度队友给我留的“作业”,今天搞定了。场景是某个页面,用户输入内容后,希望按Ctrl+S直接提交保存。也就是要用Ctrl+S去触发保存按钮的Click事件。然而在浏览器中,Ctrl+S默认是保存网页(Firefox下就是这样),所以需要写一个可以覆盖浏览器自身快捷键的脚本,去触发按钮事件。 我写了个最简单的Demo,效果如下:点击Button后,会显示一句话以及触发时间。现在需要用Ctrl+S来触发这个事件。注意,先得引入JQuery库。 第一种方法是: $(window).keypress(function (event) { if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) { return true; } $('#Button1'). …

ASP.NET jQuery

SQL Server 2012入门图解(一):建表、备份、还原

本文很菜,旨在帮助0基础的初学者入门,高手勿看。关于SQL Server 2012的安装可以看我的这篇文章《SQL Server 2012 Express 安装图解》。 一、建立你的第一个数据库和表 例:建立一个用于描述一个学校学生情况的数据库。把它命名为School。并且要在School数据库下建立保存学生信息的表Student。在可视化界面下,我们通常这样操作。(本文是入门教程,不介绍如何用SQL语句建表) 1.    连接到本地数据库引擎后,右击数据库,选择【新建数据库】。 2.    在弹出的对话框中,把数据库名称设置为School,其他参数保留默认。 3.    刷新视图,可以看到School数据库已经建立成功了。 4.    下面我们要在这个数据库中新建一张表。展开School数据库,右击“表”,选择“新建表”。 5.    右边的窗口是表的可视化界面,在这里可以设计一 …

SQL Server Backup

C#读取Excel单元格中的日期

今天写一小程序用来分析某Excel报表,结果在处理日期的时候蛋疼了。 原Excel是这样的: Excel加载到DataTable以后,日期都变成了这个样子: 看起来很像某偏移量。当然也有一部分日期是正常的: 我尝试用DateTime.Parse直接匹配,结果爆掉了。于是查了下MSDN找到了正确的办法:DateTime.FromOADate(double d) 方法: d 参数是一个双精度浮点数字,它将日期表示为基础日期(1899 年 12 月 30 日午夜)之前或之后的天数。 d 的符号和整数部分将日期编码为相对于 1899 年 12 月 30 日的正负日偏移量,而 d 的小数部分的绝对值将当天的时间编码为相对于午夜的小数日偏移量。d 必须为负 657435.0 到正 2958466.0 之间的值。 根据我的Excel,我封装了一下转换函数,如下: private DateTime …

DateTime Excel

使用Visual Studio在VMWare虚拟机上远程调试程序

我用的是VMWare8,安装的时候附送了我一个Visual Studio的插件,似乎是跨机器调试程序用的。也就是在主机的VS上调试虚拟机中的程序,看着很牛逼,于是稍微研究了一下。下面是攻略: 我建了个很简单的控制台程序用来演示。断点加在了主函数入口。 第一步:启动虚拟机,我用的是一台XP的虚拟机,记得安装VMWare Tools,要调试.NET程序也当然要安装对应的.NET Framework。然后,去【控制面板\管理工具\本地安全设置\本地策略\安全选项】中,把网络访问:本地帐户的共享和安全模式改成“经典”,如图: 第二步:在虚拟机中增加一个和主机当前登录帐户一模一样的帐户。比如主机的帐户是Edi_Wang,密码是123456,那么虚拟机上也得建立同样的用户,并且放在管理员组,然后用这个帐户重新登录虚拟机。 第三步:打开虚拟机设置,在Options选项卡中,找到Shared …

Debug VMWare

SQL Server 2012 Express 安装图解

前段时间微软发布了最新最犀利的SQL Server 2012,我第一时间下载回来尝鲜。在3台机器上实验安装了一下,都没有出问题。安装过程和以往类似,写这篇文章的目的是帮助刚接触SQL Server的初学者入门。高手请直接飘过。 首先,安装SQL Server需要注意的是它的版本。微软最新发布的是SQL Server 2012,但目前使用比较广泛的是2008版。对于初学者来说,安装哪个都一样。不过SQL Server 2008或2012都分别包含两种版本。超大的那个,4个多G的,是给企业用的。几百M的是给学生和开发者用的免费版,也就是Express版,它可以从微软的网站上直接下载。本文讲解的是SQL Server 2012 Express(似乎只有Windows7以上版本可以安装),读者可以寻找下面两个连接去下载: http://wwwco1vip.microsoft.com/ …

SQL Server

ASP.NET制作基于的XML导航栏

首先说明,本文为照顾刚入门的新手,有些地方可能会稍微说点基础的东西,高手可以直接忽略。 场景:以前做网站的时候,导航栏的链接都是写死在页面中的,这样不易与维护。于是今天写成了用XML配置的导航栏。用到了LINQ to XML。 先介绍一下功能: 储存导航栏信息的XML文件如下: Title是显示名称,Link是URL,OrderId表示排序的序位,Enabled为是否启用。这个菜单将最终被解析为一个ul列表: Shitter Shit Shitting Shitfully 然后我们来看看如何实现: 首先需要给菜单创建一个只包含属性的模型类,它的作用是成为对具体某一个菜单项的描述,系统中传递的将是这样一个模型: public class MenuItem { …

ASP.NET XML