﻿<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>【孟宪会之精彩世界】之.NET开发者园地</title>
    <link>http://dotnet.aspx.cc/</link>
    <description>【孟宪会之精彩世界】.NET开发技术。</description>
    <language>zh-CN</language>
    <copyright>Copyright 1999-2010【孟宪会之精彩世界】</copyright>
    <managingEditor>amxh@21cn.com</managingEditor>
    <webMaster>amxh@21cn.com</webMaster>
    <pubDate>Tue, 09 Feb 2010 11:21:38 GMT</pubDate>
    <lastBuildDate>Tue, 09 Feb 2010 11:21:38 GMT</lastBuildDate>
    <category>.NET 开发技术</category>
    <generator>【孟宪会之精彩世界】RSS 生成器1.0</generator>
    <docs>http://dotnet.aspx.cc/Rss.aspx</docs>
    <ttl>60</ttl>
    <image>
      <title>【孟宪会之精彩世界】</title>
      <width>144</width>
      <height>35</height>
      <link>http://dotnet.aspx.cc/</link>
      <url>http://dotnet.aspx.cc/Images/LogoRss.gif</url>
    </image>
    <atom:link rel="search" href="http://dotnet.aspx.cc/searchRss.xml" type="pplication/opensearchdescription+xml" title="【孟宪会之精彩世界】搜索服务" />
    <item>
      <title>Silverlight2 跨域调用Web服务的方法</title>
      <category>技术文章</category>
      <pubDate>Tue, 10 Feb 2009 22:26:14 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/2fde980d-d8d9-485d-ae5d-20246d5f7207/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
调用Web服务是一种常见的功能，在Silverlight2中也是可以调用别的网站的Web服务的。由于跨域访问存在安全漏洞，所以，默认情况下，Silverlight2不允许跨域进行服务的调用。要实现跨域调用Web服务，需要在被调用的Web服务的网站跟目录下放置一个策略配置文件：clientaccesspolicy.xml。该文件的内容如下：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;xmp&amp;gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;access-policy&amp;gt;
  &amp;lt;cross-domain-access&amp;gt;
    &amp;lt;policy&amp;gt;
      &amp;lt;allow-from http-request-headers=&amp;quot;*&amp;quot;&amp;gt;
        &amp;lt;domain uri=&amp;quot;*&amp;quot;/&amp;gt;
      &amp;lt;/allow-from&amp;gt;
      &amp;lt;grant-to&amp;gt;
        &amp;lt;resource path=&amp;quot;/&amp;quot; include-subpaths=&amp;quot;true&amp;quot;/&amp;gt;
      &amp;lt;/grant-to&amp;gt;
    &amp;lt;/policy&amp;gt;
  &amp;lt;/cross-domain-access&amp;gt;
&amp;lt;/access-policy&amp;gt;
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
此文件的意思是允许来自任何域的任何方法的访问。有关Sliverlight2的安全策略，请参考“使服务跨域边界可用”的文章，地址是：http://msdn.microsoft.com/zh-cn/library/cc197955(VS.95).aspx
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
下面，就做一个调用的例子。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
1，建立Silverlight2应用程序的工程，注意此处的工程名字是SilverlightCrossDomainCallWebService，工程名字会影响到代码里面一些对象的名称写法
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;apos;http://dotnet.aspx.cc/article/SilverlightCrossDomainCallWebService1.gif&amp;apos; /&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;
2，添加一个按钮和一个显示信息的文本框，内容如下：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;xmp&amp;gt;
&amp;lt;UserControl x:Class=&amp;quot;SilverlightCrossDomainCallWebService.Page&amp;quot;
    xmlns=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot; 
    xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot; 
    Width=&amp;quot;400&amp;quot; Height=&amp;quot;300&amp;quot;&amp;gt;
 &amp;lt;Grid x:Name=&amp;quot;LayoutRoot&amp;quot; Background=&amp;quot;White&amp;quot;&amp;gt;
  &amp;lt;StackPanel x:Name=&amp;quot;ButtonPanel&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot;&amp;gt;
   &amp;lt;Button Content=&amp;quot;调用&amp;quot; Width=&amp;quot;200&amp;quot; Margin=&amp;quot;10&amp;quot; Click=&amp;quot;Button_Click&amp;quot;&amp;gt;&amp;lt;/Button&amp;gt;
   &amp;lt;TextBox x:Name=&amp;quot;Result&amp;quot; Width=&amp;quot;360&amp;quot; Margin=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/TextBox&amp;gt;
  &amp;lt;/StackPanel&amp;gt;
 &amp;lt;/Grid&amp;gt;
&amp;lt;/UserControl&amp;gt;
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
3，切换到代码视图，在工程上点右键，选择“添加服务引用…”，输入Web服务地址：http://dotnet.aspx.cc/HelloWebService.asmx，名称空间的名字也影响代码的写法，此处需要注意，如图：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;apos;http://dotnet.aspx.cc/article/SilverlightCrossDomainCallWebService2.gif&amp;apos; /&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
4，编写调用代码。&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;xmp&amp;gt;
private void Button_Click(object sender, RoutedEventArgs e)
{
  MengXianhuiCallWebService.HelloWebServiceSoapClient service = new SilverlightCrossDomainCallWebService.MengXianhuiCallWebService.HelloWebServiceSoapClient();
  service.HelloWorldCompleted += new EventHandler&amp;lt;SilverlightCrossDomainCallWebService.MengXianhuiCallWebService.HelloWorldCompletedEventArgs&amp;gt;(service_HelloWorldCompleted);
  service.HelloWorldAsync();
}

void service_HelloWorldCompleted(object sender, SilverlightCrossDomainCallWebService.MengXianhuiCallWebService.HelloWorldCompletedEventArgs e)
{
  Result.Text = e.Result.ToString();
}
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
5，输入浏览器 地址进行测试即可，注意：需要使用http方式进行测试，结果如图：
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;img src=&amp;apos;http://dotnet.aspx.cc/article/SilverlightCrossDomainCallWebService3.gif&amp;apos; /&amp;gt;&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/2fde980d-d8d9-485d-ae5d-20246d5f7207/read.aspx</link>
    </item>
    <item>
      <title>使用JDBC连接SQL Server 2008的方法</title>
      <category>技术文章</category>
      <pubDate>Wed, 04 Feb 2009 21:00:21 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/dcedf194-ed02-4aca-aac2-585f9f37931e/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
使用JDBC连接SQL Server 2008，很多人都在问，我自己也测试几次，发现按照以前的方法连接会出现一点小问题。原因在于：SQL Server 2008采用了动态端口的机制，按照以前的方法连接会报告连接不了，其实端口写对了完全没有问题。连接方法如下：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
1，微软目前没有发布针对SQL Server 2008专用的JDBC驱动程序，使用SQL Server 2005 的就可以了，但是，需要注意： SQL Server 2008的新功能无法使用，使用新功能必须等到专用的JDBC发布之后才能。Microsoft SQL Server 2005 JDBC Driver 1.2 的下载地址： &amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;a href=&amp;apos;http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=c47053eb-3b64-4794-950d-81e1ec91c1ba&amp;apos;&amp;gt;http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=c47053eb-3b64-4794-950d-81e1ec91c1ba&amp;lt;/a&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
2，设置端口为固定端口：SQL Server 配置管理器，按图设置即可:
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
&amp;lt;img src=&amp;apos;http://dotnet.aspx.cc/article/sqlserver2008.gif&amp;apos; alt=&amp;apos;使用JDBC连接SQL SERVER 2008的方法&amp;apos; /&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;注意：动态端口设为空，即可禁用动态端口。连接的写法：jdbc:sqlserver://192.168.3.6:1368;databaseName=数据库名称;user=用户名;password=密码;
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/dcedf194-ed02-4aca-aac2-585f9f37931e/read.aspx</link>
    </item>
    <item>
      <title>通过循环读取DataReader，生成多列的表格</title>
      <category>技术文章</category>
      <pubDate>Sun, 01 Feb 2009 15:51:22 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/d448d747-889b-432d-9a8d-41e04e468749/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;本文章没有什么技术含量，纯粹是提供给初学者参考之用。&amp;lt;/p&amp;gt;
&amp;lt;xmp&amp;gt;
int toShowColumn = 4;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
string cnString = @&amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\aspxWeb.mdb;&amp;quot;;
OleDbConnection cn = new OleDbConnection(cnString);
cn.Open();
OleDbCommand cmd = new OleDbCommand(&amp;quot;Select * from Document&amp;quot;, cn);
OleDbDataReader dr = cmd.ExecuteReader();
sb.Append(&amp;quot;&amp;lt;table border=&amp;apos;1&amp;apos;&amp;gt;&amp;quot;);
while (dr.Read())
{
  sb.Append(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);
  sb.Append(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;);
  sb.Append(dr[&amp;quot;Title&amp;quot;].ToString());
  sb.Append(&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);
  for (int i = 0; i &amp;lt; toShowColumn - 1; i++)
  {
    if (dr.Read())
    {
      sb.Append(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;);
      sb.Append(dr[&amp;quot;Title&amp;quot;].ToString());
      sb.Append(&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);
    }
    else
    {
      sb.Append(&amp;quot;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;quot;);
    }
  }
  sb.Append(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);
}
sb.Append(&amp;quot;&amp;lt;/table&amp;gt;&amp;quot;);
div1.InnerHtml = sb.ToString();
dr.Close();
cn.Close();
cn.Dispose();
&amp;lt;/xmp&amp;gt;
&amp;lt;p&amp;gt;例子：&amp;lt;a href=&amp;apos;http://dotnet.aspx.cc/Exam/MultiColumn.aspx&amp;apos;&amp;gt;查看例子&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;ASP的代码：&amp;lt;/p&amp;gt;
&amp;lt;xmp&amp;gt;
&amp;lt;%
Dim cnString, cn, rs
cnString = &amp;quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&amp;quot; &amp;amp; Server.MapPath(&amp;quot;aspxWeb.mdb&amp;quot;)
Set cn = Server.CreateObject(&amp;quot;ADODB.Connection&amp;quot;)
cn.Open cnString
Set rs = cn.Execute(&amp;quot;Select * from Document&amp;quot;)
Response.Write &amp;quot;&amp;lt;table border=&amp;apos;1&amp;apos;&amp;gt;&amp;quot;
While Not rs.EOF
 Response.Write &amp;quot;&amp;lt;tr&amp;gt;&amp;quot;
  For i = 1 To 4
   If Not rs.EOF Then
   	Response.Write &amp;quot;&amp;lt;td&amp;gt;&amp;quot; &amp;amp; rs(&amp;quot;Title&amp;quot;) &amp;amp; &amp;quot;&amp;lt;/td&amp;gt;&amp;quot;   	
    rs.MoveNext
   Else
    Response.Write &amp;quot;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;quot;
   End If
  Next
 Response.Write &amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;
Wend
Response.Write &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
%&amp;gt;
&amp;lt;/xmp&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/d448d747-889b-432d-9a8d-41e04e468749/read.aspx</link>
    </item>
    <item>
      <title>微软发布Internet Explorer 8 RC1</title>
      <category>业内动态</category>
      <pubDate>Tue, 27 Jan 2009 16:28:05 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/bd009358-08d5-43d9-bb53-c21b31e76c34/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;2009年1月26日，微软发布了Internet Explorer 8 RC1的官方版本，其中包括各国语言的版本和各种操作系统的版本下载，下载地址为：&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
&amp;lt;a href=&amp;apos;http://www.microsoft.com/windows/internet-explorer/beta/worldwide-sites.aspx&amp;apos;&amp;gt;http://www.microsoft.com/windows/internet-explorer/beta/worldwide-sites.aspx&amp;lt;/a&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;apos;http://dotnet.aspx.cc/Exam/ie8rc1.gif&amp;apos; /&amp;gt;&amp;lt;/p&amp;gt;
</description>
      <link>http://dotnet.aspx.cc/article/bd009358-08d5-43d9-bb53-c21b31e76c34/read.aspx</link>
    </item>
    <item>
      <title>向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法</title>
      <category>技术文章</category>
      <pubDate>Thu, 22 Jan 2009 20:53:12 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/27c0d578-e4df-44dc-91a7-54ba10a53d1f/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;在使用下面的代码向Access数据库中添加数据的时候，如果是日期字段，则会出现“标准表达式中数据类型不匹配。”的错误，这可能是C#中的日期类型无法直接转换成Access中的日期类型OleDbType.DBDate所致：&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;xmp&amp;gt;string ConnectionString = @&amp;quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MengXianHui.mdb;Persist Security Info=True&amp;quot;;
string QueryString = &amp;quot;Insert Into [Document] (Title, Content, Author, CreateDate) Values(@Title, @Content, @Author, @CreateDate)&amp;quot;;
OleDbConnection cn = new OleDbConnection(ConnectionString);
cn.Open();
OleDbCommand cmd = new OleDbCommand(QueryString, cn);
cmd.Parameters.AddWithValue(&amp;quot;@Title&amp;quot;, Title);
cmd.Parameters.AddWithValue(&amp;quot;@Content&amp;quot;, Content);
cmd.Parameters.AddWithValue(&amp;quot;@Author&amp;quot;, Author);
cmd.Parameters.AddWithValue(&amp;quot;@CreateDate&amp;quot;, DateTime.Now);
cmd.ExecuteNonQuery();
cn.Close();
cn.Dispose();
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;解决办法就是将上面语句中的 cmd.Parameters.AddWithValue(&amp;quot;@CreateDate&amp;quot;, DateTime.Now); 转换成下面的语句即可：&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;xmp&amp;gt;OleDbParameter parameter = new OleDbParameter();
parameter.OleDbType = OleDbType.DBDate;
parameter.Value = DateTime.Now;
cmd.Parameters.Add(parameter);
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/27c0d578-e4df-44dc-91a7-54ba10a53d1f/read.aspx</link>
    </item>
    <item>
      <title>Parameters.AddWithValue 方法在SQL语句 Where 字句中的用法 </title>
      <category>技术文章</category>
      <pubDate>Wed, 21 Jan 2009 21:15:33 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/26464b05-2875-4f62-b3b3-dfc33d63e0ce/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
今天晚上看论坛，有人提问说，Parameters.AddWithValue方法在有些情况下不好使，他的写法是这样的：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
&amp;lt;xmp&amp;gt;string strWhere = &amp;quot;&amp;apos;%美%&amp;apos;&amp;quot;;
strSql = &amp;quot;SELECT  * FROM area Where [name] like @strWhere&amp;quot;;//这个就不好使
cmd.Parameters.AddWithValue(&amp;quot;@strWhere&amp;quot;, strWhere);
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
这是因为，ASP.NET在生成SQL语句时，会在Like后面再加上一次单引号，造成错误，如果打开 SQL Server的跟踪管理器，可以看到执行的语句如下：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;xmp&amp;gt;exec sp_executesql N&amp;apos;SELECT  * FROM Article Where [Title] like @strWhere&amp;apos;,N&amp;apos;@strWhere nvarchar(5)&amp;apos;,@strWhere=N&amp;apos;%为什么%&amp;apos;
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
不难理解，在 OldDbCommand 中也会有类似的做法。&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
正确的代码为：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
&amp;lt;xmp&amp;gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Data.SqlClient&amp;quot; %&amp;gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;
  protected void Page_Load(object sender, EventArgs e)
  {
    string connectionString = @&amp;quot;Data Source=(local);Initial Catalog=jGroup2;User Id=sa;Password=myPassword;&amp;quot;;
    SqlConnection con = new SqlConnection(connectionString);
    con.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    string strWhere = &amp;quot;%为什么%&amp;quot;;
    string strSql = &amp;quot;SELECT * FROM B_Article Where [Title] like @strWhere&amp;quot;;
    cmd.Parameters.AddWithValue(&amp;quot;@strWhere&amp;quot;, strWhere);
    cmd.CommandText = strSql;
    SqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
      Response.Write(dr[&amp;quot;Title&amp;quot;] + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);
    }
    con.Close();
    con.Dispose();
  }
&amp;lt;/script&amp;gt;
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/26464b05-2875-4f62-b3b3-dfc33d63e0ce/read.aspx</link>
    </item>
    <item>
      <title>Windows Live Messenger 2009 登录错误 80040154 的解决办法</title>
      <category>疑难解答</category>
      <pubDate>Sun, 21 Dec 2008 09:06:23 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/8d2e917e-b186-422b-98c9-293b26fa1c66/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
Windows Live Messenger 2009 正式版已经发布，版本号是：14.0.8050.1202，昨天下载了一个MSI版本的在 Windows Server 2003 上进行了安装，安装完毕，一直不能登陆，郁闷！按照微软的解决方法试验了一下：&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
由于 DLL 文件或 XML 分析程序出现问题，用户无法登录 Windows Live Messenger。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
若要解决此问题，请尝试以下方法：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
1.重新注册 Msxml3.dll 文件，稍等几分钟，然后尝试重新登录 Messenger。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
2.如果您仍然无法登录 Messenger，请重新安装 XML 分析程序，稍等几分钟，然后尝试重新登录 Messenger。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
3.如果您仍然无法登录 Messenger，请重新启动 Messenger，然后尝试重新登录。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
仍然没有解决问题，最后查阅了一下资料，安装一个WLM必备组件 Windows Live Communications Platform，该组件是 Windows Live Messenger 2009 Build 14.0.8050.1202 Final必须安装的组件。下载地址是：http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=4666613。安装完毕就好了。
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/8d2e917e-b186-422b-98c9-293b26fa1c66/read.aspx</link>
    </item>
    <item>
      <title>未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。系统找不到指定的文件的解决办法</title>
      <category>疑难解答</category>
      <pubDate>Fri, 19 Dec 2008 16:47:56 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/2e220589-19cc-4cbe-8427-8f3201c97899/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;当使用VS2008时，添加数据库连接，可能出现下面的提示：&amp;lt;/p&amp;gt;
&amp;lt;p style=&amp;apos;color:red&amp;apos;&amp;gt;

无法添加数据库
未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。系统找不到指定的文件。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
可以按照下面的步骤解决：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=c6c3e9ef-ba29-4a43-8d69-a2bed18fe73c
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
下载
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
Microsoft SQL Server 2008 管理对象
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/2e220589-19cc-4cbe-8427-8f3201c97899/read.aspx</link>
    </item>
    <item>
      <title>文件下载时，如何显示“不再显示该提示”的对话框？</title>
      <category>疑难解答</category>
      <pubDate>Thu, 18 Dec 2008 12:29:30 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/82de9cb7-b91f-42a9-8ad9-63a6c582ac65/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;问题：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;IE的链接是一个excel，一般链接的时候会提示“打开”，“保存”或“取消”，但是意外选了“不再显示该提示”的选项，请问让链接再次显示该对话框？&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;解答：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;选择 .XLS 的不再显示该信息后，在注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\AttachmentExecute\{0002DF01-0000-0000-C000-000000000046}  应该会出现一个表示 .XLS 的注册表项 Excel.Sheet.8，将其删除即可令 .XLS 重新提示保存。&amp;lt;/p&amp;gt;




</description>
      <link>http://dotnet.aspx.cc/article/82de9cb7-b91f-42a9-8ad9-63a6c582ac65/read.aspx</link>
    </item>
    <item>
      <title>Internet Explorer 8 RC1 下载地址</title>
      <category>业内动态</category>
      <pubDate>Wed, 17 Dec 2008 12:48:30 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/50d7f40d-ec9b-4d83-8c7b-033daea2d8f3/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;Internet Explorer 8 RC1 各版本（目前只有英文版）下载地址：&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;http://www.windowswiki.info/downloads/IE8-WindowsVista-x86-ENU-RC1.exe&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Windows Internet Explorer 8 Release Candidate 1 for Windows Vista 32-bit&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;http://www.windowswiki.info/downloads/IE8-WindowsVista-x64-ENU-RC1.exe&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Windows Internet Explorer 8 Release Candidate 1 for Windows Vista 64-bit&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;http://www.windowswiki.info/downloads/IE8-WindowsXP-x86-ENU-RC1.exe&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Windows Internet Explorer 8 Release Candidate 1 for Windows XP 32-bit&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;http://www.windowswiki.info/downloads/IE8-WindowsServer2003-x64-ENU-RC1.exe&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Windows Internet Explorer 8 Release Candidate 1 for Windows XP 64-bit&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
&amp;lt;a href=&amp;quot;http://www.windowswiki.info/downloads/IE8-RC1-Readme.pdf&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;Windows Internet Explorer 8 Release Candidate 1 说明文件&amp;lt;/a&amp;gt;
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/50d7f40d-ec9b-4d83-8c7b-033daea2d8f3/read.aspx</link>
    </item>
    <item>
      <title>ASP.NET 绑定DataSet中的多个表</title>
      <category>技术文章</category>
      <pubDate>Mon, 15 Dec 2008 21:18:56 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/da6c8223-99c2-4245-b8d9-f62dc2c12dc0/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;今天在论坛遇到有人问如何在ASP.NET的数据控件中如何一次绑定多个表？这个问题，平时很少看到，一般在数据绑定之前，数据都是放在一个表中的，实际上，如果表之间存在关系，绑定多个表也是可以的。下面就是 DataSet中两个表进行绑定的例子。&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;a href=&amp;apos;http://dotnet.aspx.cc/Exam/DataBindMultiTable.aspx&amp;apos;&amp;gt;查看例子&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;xmp&amp;gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;
 &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;

&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;
  protected void Page_Load(object sender, EventArgs e)
  {
    System.Data.DataSet ds = new System.Data.DataSet();
    System.Data.DataTable dataTable1 = new System.Data.DataTable(&amp;quot;BlogUser&amp;quot;);
    System.Data.DataRow dr;
    dataTable1.Columns.Add(new System.Data.DataColumn(&amp;quot;UserId&amp;quot;, typeof(System.Int32)));
    dataTable1.Columns.Add(new System.Data.DataColumn(&amp;quot;UserName&amp;quot;, typeof(System.String)));
    dataTable1.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns[&amp;quot;UserId&amp;quot;] };

    for (int i = 0; i &amp;lt; 8; i++)
    {
      dr = dataTable1.NewRow();
      dr[0] = i;
      dr[1] = &amp;quot;【孟子E章】&amp;quot; + i.ToString();
      dataTable1.Rows.Add(dr);
    }

    System.Data.DataTable dataTable2 = new System.Data.DataTable(&amp;quot;BlogArticle&amp;quot;);
    dataTable2.Columns.Add(new System.Data.DataColumn(&amp;quot;ArticleId&amp;quot;, typeof(System.Int32)));
    dataTable2.Columns.Add(new System.Data.DataColumn(&amp;quot;Title&amp;quot;, typeof(System.String)));
    dataTable2.Columns.Add(new System.Data.DataColumn(&amp;quot;UserId&amp;quot;, typeof(System.Int32)));
    dataTable2.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns[&amp;quot;ArticleId&amp;quot;] };
    Random rd = new Random();
    for (int i = 0; i &amp;lt; 20; i++)
    {
      dr = dataTable2.NewRow();
      dr[0] = i;
      dr[1] = &amp;quot;文章标题&amp;quot; + i.ToString();
      dr[2] = rd.Next(0, 7);
      dataTable2.Rows.Add(dr);
    }
    ds.Tables.Add(dataTable1);
    ds.Tables.Add(dataTable2);

    System.Data.DataColumn parentColumn = ds.Tables[&amp;quot;BlogUser&amp;quot;].Columns[&amp;quot;UserId&amp;quot;];
    System.Data.DataColumn childColumn = ds.Tables[&amp;quot;BlogArticle&amp;quot;].Columns[&amp;quot;UserId&amp;quot;];
    System.Data.DataRelation user_article = new System.Data.DataRelation(&amp;quot;UserId&amp;quot;, parentColumn, childColumn);
    ds.Relations.Add(user_article);
    this.Repeater1.DataSource = ds.Tables[&amp;quot;BlogArticle&amp;quot;].DefaultView;
    this.Repeater1.DataBind();
  }
&amp;lt;/script&amp;gt;

&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
  &amp;lt;title&amp;gt;【孟宪会之精彩世界】- ASP.NET 绑定DataSet中的多个表 作者：孟子E章&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
  &amp;lt;asp:Repeater ID=&amp;quot;Repeater1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
    &amp;lt;HeaderTemplate&amp;gt;
      &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;
        &amp;lt;tr style=&amp;quot;background:orange&amp;quot;&amp;gt;
          &amp;lt;th&amp;gt;文章标题&amp;lt;/th&amp;gt;
          &amp;lt;th&amp;gt;用户ID&amp;lt;/th&amp;gt;
          &amp;lt;th&amp;gt;用户名&amp;lt;/th&amp;gt;
        &amp;lt;/tr&amp;gt;
    &amp;lt;/HeaderTemplate&amp;gt;
    &amp;lt;FooterTemplate&amp;gt;
      &amp;lt;/table&amp;gt;&amp;lt;/FooterTemplate&amp;gt;
    &amp;lt;ItemTemplate&amp;gt;
      &amp;lt;tr&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;%#Eval(&amp;quot;Title&amp;quot;)%&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;%#Eval(&amp;quot;UserId&amp;quot;) %&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;&amp;lt;%#(Container.DataItem as System.Data.DataRowView).Row.GetParentRow(&amp;quot;UserId&amp;quot;)[&amp;quot;UserName&amp;quot;]%&amp;gt;
        &amp;lt;/td&amp;gt;
      &amp;lt;/tr&amp;gt;
    &amp;lt;/ItemTemplate&amp;gt;
  &amp;lt;/asp:Repeater&amp;gt;
  &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&amp;lt;/xmp&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/da6c8223-99c2-4245-b8d9-f62dc2c12dc0/read.aspx</link>
    </item>
    <item>
      <title>检测远程URL是否存在的三种方法</title>
      <category>技术文章</category>
      <pubDate>Fri, 12 Dec 2008 21:15:05 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/9990f032-2a73-4748-9630-f446ed63be3c/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;说明：&amp;lt;/strong&amp;gt;本文是以前文章的备份。&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;本文用3种方法检测远程URL是否存在。&amp;lt;/p&amp;gt;
&amp;lt;xmp&amp;gt;
private void Page_Load(object sender, System.EventArgs e)
{
  string url1 = &amp;quot;http://dotnet.aspx.cc/&amp;quot;;
  string url2 = &amp;quot;http://dotnet.aspx.cc/Images/logo.gif&amp;quot;;
  Response.Write(&amp;quot;&amp;lt;li&amp;gt;方法1：&amp;quot;);
  Response.Write(url1 + &amp;quot; 存在：&amp;quot; + UrlExistsUsingHttpWebRequest(url1).ToString());
  Response.Write(&amp;quot;&amp;lt;li&amp;gt;方法2：&amp;quot;);
  Response.Write(url1 + &amp;quot; 存在：&amp;quot; + UrlExistsUsingSockets(url1).ToString());
  Response.Write(&amp;quot;&amp;lt;li&amp;gt;方法3：&amp;quot;);
  Response.Write(url1 + &amp;quot; 存在：&amp;quot; + UrlExistsUsingXmlHttp(url1).ToString());
  Response.Write(&amp;quot;&amp;lt;li&amp;gt;方法1：&amp;quot;);
  Response.Write(url2 + &amp;quot; 存在：&amp;quot; + UrlExistsUsingHttpWebRequest(url2).ToString());
  Response.Write(&amp;quot;&amp;lt;li&amp;gt;方法3：&amp;quot;);
  Response.Write(url2 + &amp;quot; 存在：&amp;quot; + UrlExistsUsingXmlHttp(url2).ToString());
}

private bool UrlExistsUsingHttpWebRequest(string url){
  try
  {
    System.Net.HttpWebRequest myRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
    myRequest.Method = &amp;quot;HEAD&amp;quot;;
    myRequest.Timeout = 100;
    System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)myRequest.GetResponse();
    return (res.StatusCode == System.Net.HttpStatusCode.OK);
  }
  catch (System.Net.WebException we)
  {
    System.Diagnostics.Trace.Write(we.Message);
    return false;
  }
}

private bool UrlExistsUsingXmlHttp(string url)
{
  //注意：此方法需要引用Msxml2.dll
  MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
  _xmlhttp.open(&amp;quot;HEAD&amp;quot;, url, false, null, null);
  _xmlhttp.send(&amp;quot;&amp;quot;);
  return (_xmlhttp.status == 200);
}
private bool UrlExistsUsingSockets(string url)
{
  if (url.StartsWith(&amp;quot;http://&amp;quot;)) url = url.Remove(0, &amp;quot;http://&amp;quot;.Length);
  try
  {
    System.Net.IPHostEntry ipHost = System.Net.Dns.Resolve(url);
    return true;
  }
  catch (System.Net.Sockets.SocketException se)
  {
    System.Diagnostics.Trace.Write(se.Message);
    return false;
  }
}
&amp;lt;/xmp&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/9990f032-2a73-4748-9630-f446ed63be3c/read.aspx</link>
    </item>
    <item>
      <title>IE8中的可访问性功能（一）：光标浏览</title>
      <category>技术文章</category>
      <pubDate>Thu, 11 Dec 2008 23:32:36 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/3bf7b6f7-b2b4-442d-94b3-e911526cad34/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
在 IE8 中，将支持光标浏览（Caret Browsing），此特性是在网页中放置一个可移动的光标，就像浏览记事本和Word中的内容一样，以便网页访问者使用键盘来选择文字（按住Alt键），按 F7 打开或者关闭此功能。这个功能在Firefox中早已经实现。在 IE8 中，在使用键盘选中文字时，可以使用加速键（右边Alt和Ctrl之间的键）来打开右键菜单，来选择翻译等功能。
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/3bf7b6f7-b2b4-442d-94b3-e911526cad34/read.aspx</link>
    </item>
    <item>
      <title>.NET Framewok 3.5 中 JSON 序列化和反序列化的简单实现</title>
      <category>技术文章</category>
      <pubDate>Thu, 11 Dec 2008 22:03:59 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/96a0c148-fddd-48d4-965c-aaac55f15d8a/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
由于JSON对象在数据交换中越来越流行，.NET Framewok 3.5也提供了JSON对象序列化和反序列化的类，这就是System.Runtime.Serialization.Json 命名空间下的 DataContractJsonSerializer 类。利用这个类，可以实现JSON对象的序列化和反序列化。下面就是一个简单的例子：
&amp;lt;/p&amp;gt;
&amp;lt;xmp&amp;gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.IO&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Runtime.Serialization&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Runtime.Serialization.Json&amp;quot; %&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; 
  &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;
  
  protected void Button1_Click(object sender, EventArgs e)
  {
    //反序列化成对象    
    String JSONString = &amp;quot;{\&amp;quot;Name\&amp;quot;:\&amp;quot;孟宪会\&amp;quot;,\&amp;quot;Url\&amp;quot;:\&amp;quot;http://dotnet.aspx.cc/\&amp;quot;}&amp;quot;;
    DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(MengxianHui));
    MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(JSONString)); //这里不能使用GB2312编码的
    MengxianHui mxh = (MengxianHui)ds.ReadObject(ms);
    ms.Close();
    Response.Write(&amp;quot;&amp;lt;li&amp;gt;&amp;quot; + mxh.Name + &amp;quot; &amp;quot; + mxh.Url);

    
    //对象的序列化
    MengxianHui mxh2 = new MengxianHui();
    mxh2.Name = &amp;quot;孟子E章&amp;quot;;
    mxh2.Url = &amp;quot;http://blog.csdn.net/net_lover&amp;quot;;
    MemoryStream ms2 = new MemoryStream();
    ds.WriteObject(ms2, mxh2);
    JSONString = Encoding.UTF8.GetString(ms2.ToArray());
    Response.Write(&amp;quot;&amp;lt;li&amp;gt;&amp;quot; + JSONString);
    ms2.Close();
  }

  /// &amp;lt;summary&amp;gt;
  /// 类对象需要标记为DataContractAttribute
  /// &amp;lt;/summary&amp;gt;
  [DataContractAttribute]
  class MengxianHui
  {
    //成员需要标记为 DataMember
    [DataMember]
    public string Name { set; get; }
    [DataMember]
    public string Url { set; get; }
  }
 
&amp;lt;/script&amp;gt;

&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
  &amp;lt;title&amp;gt;孟子E章 JSON 测试例子&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
  &amp;lt;asp:Button ID=&amp;quot;Button1&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;Button1_Click&amp;quot; Text=&amp;quot;Button&amp;quot; /&amp;gt;
  &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&amp;lt;/xmp&amp;gt;
&amp;lt;p&amp;gt;
在进行代码测试时，注意添加引用System.Runtime.Serialization和System.Runtime.Serialization.Json
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
“数据协定”是在服务与客户端之间达成的正式协议，用于以抽象方式描述要交换的数据。 也就是说，为了进行通信，客户端和服务不必共享相同的类型，而只需共享相同的数据协定。 数据协定为每个参数或返回类型精确定义为进行交换而序列化（转换为 XML）哪些数据。
所有 .NET Framework 基元类型（如整型和字符串型）以及某些被视为基元的类型（如 DateTime 和 XmlElement）无需做其他任何准备工作就可序列化并被视为拥有默认数据协定。 许多 .NET Framework 类型也具有现有数据协定。 必须为所创建的新复杂类型定义数据协定以便可以进行序列化。 正常情况下可通过将 DataContractAttribute 属性应用到该类型来完成该任务。 可以将此属性应用到类、结构和枚举。 然后必须将 DataMemberAttribute 属性应用到数据协定类型的每个成员，以指示这些成员为数据成员，即应进行序列化。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
DataMemberAttribute 类：当应用于类型的成员时，指定该成员是数据协定的一部分并可由 DataContractSerializer 进行序列化。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
DataContractAttribute 类：指定该类型要定义或实现一个数据协定，并可由序列化程序（如 DataContractSerializer）进行序列化。若要使其类型可序列化，类型作者必须为其类型定义数据协定。
&amp;lt;/p&amp;gt;
</description>
      <link>http://dotnet.aspx.cc/article/96a0c148-fddd-48d4-965c-aaac55f15d8a/read.aspx</link>
    </item>
    <item>
      <title>ASP.NET 2.0导出到Excel时如何保留换行？</title>
      <category>技术文章</category>
      <pubDate>Sun, 07 Dec 2008 19:45:22 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/7ca98e44-fe9f-4f96-b115-e1998c0bf080/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;由于Excel毕竟不是 HTML，它有自己的样式标准，在Excel 中，实现换行的方法是：&amp;lt;/p&amp;gt;
&amp;lt;xmp&amp;gt;
&amp;lt;br style=&amp;apos;mso-data-placement:same-cell;&amp;apos;/&amp;gt;
&amp;lt;/xmp&amp;gt;
&amp;lt;p&amp;gt;完整代码：&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
&amp;lt;xmp&amp;gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; Trace=&amp;quot;false&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; %&amp;gt;

&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;

&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;

  protected void Button1_Click(object sender, EventArgs e)
  {
    System.Web.HttpContext curContext = System.Web.HttpContext.Current;
    // IO用于导出并返回excel文件 
    System.IO.StringWriter strWriter = null;
    System.Web.UI.HtmlTextWriter htmlWriter = null;

    // 设置编码和附件格式 
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.Buffer = true;
    HttpContext.Current.Response.AddHeader(&amp;quot;content-disposition&amp;quot;, string.Format(&amp;quot;attachment; filename={0}&amp;quot;, &amp;quot;aaa.xls&amp;quot;));

    curContext.Response.ContentType = &amp;quot;application/vnd.ms-excel&amp;quot;;
    curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding(&amp;quot;GB18030&amp;quot;);
    curContext.Response.Charset = &amp;quot;&amp;quot;;

    // 导出excel文件 
    strWriter = new System.IO.StringWriter();
    htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
    htmlWriter.WriteLine(&amp;quot;标题&amp;quot;);

    // 返回客户端 
    GridView1.RenderControl(htmlWriter);
    curContext.Response.Write(strWriter.ToString().Replace(&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;, &amp;quot;&amp;lt;br style=&amp;apos;mso-data-placement:same-cell;&amp;apos;/&amp;gt; &amp;quot;));
    curContext.Response.End();
  }

  protected void Page_Load(object sender, EventArgs e)
  {
    if (!Page.IsPostBack)
    {
      GridView1.DataSource = CreateDataSourceByXianhuiMeng();
      GridView1.DataBind();
    }
  }

  System.Data.DataView CreateDataSourceByXianhuiMeng()
  {
    System.Data.DataTable dt = new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add(new System.Data.DataColumn(&amp;quot;学生班级&amp;quot;, typeof(System.String)));
    dt.Columns.Add(new System.Data.DataColumn(&amp;quot;学生姓名&amp;quot;, typeof(System.String)));
    dt.Columns.Add(new System.Data.DataColumn(&amp;quot;语文&amp;quot;, typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn(&amp;quot;数学&amp;quot;, typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn(&amp;quot;英语&amp;quot;, typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn(&amp;quot;计算机&amp;quot;, typeof(System.Decimal)));

    for (int i = 0; i &amp;lt; 8; i++)
    {
      System.Random rd = new System.Random(Environment.TickCount * i); ;
      dr = dt.NewRow();
      dr[0] = &amp;quot;班级&amp;quot; + i.ToString();
      dr[1] = &amp;quot;学生姓名：孟子E章&amp;quot; + i.ToString() + &amp;quot;&amp;lt;br/&amp;gt;所在班级：&amp;quot; + &amp;quot;班级&amp;quot; + i.ToString();
      dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
      dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
      dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
      dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
      dt.Rows.Add(dr);
    }
    System.Data.DataView dv = new System.Data.DataView(dt);
    return dv;
  }
  public override void VerifyRenderingInServerForm(Control control)
  { }
&amp;lt;/script&amp;gt;

&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
  &amp;lt;title&amp;gt;无标题页&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
  &amp;lt;asp:GridView ID=&amp;quot;GridView1&amp;quot; runat=&amp;quot;server&amp;quot; AutoGenerateColumns=&amp;quot;false&amp;quot;&amp;gt;
    &amp;lt;Columns&amp;gt;
      &amp;lt;asp:BoundField HtmlEncode=&amp;quot;false&amp;quot; DataField=&amp;quot;学生姓名&amp;quot; HeaderText=&amp;quot;测试字段&amp;quot; /&amp;gt;
    &amp;lt;/Columns&amp;gt;
  &amp;lt;/asp:GridView&amp;gt;
  &amp;lt;asp:Button ID=&amp;quot;Button1&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;Button1_Click&amp;quot; Text=&amp;quot;Button&amp;quot; /&amp;gt;
  &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&amp;lt;/xmp&amp;gt;
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;要查阅 Excel 中使用的样式规范，请参考：Microsoft® Office HTML and XML Reference。下载地址：http://download.microsoft.com/download/a/c/1/ac18e8a2-ce20-41b5-8407-c4cec4a17f19/ofhtml9.exe
&amp;lt;/p&amp;gt;
</description>
      <link>http://dotnet.aspx.cc/article/7ca98e44-fe9f-4f96-b115-e1998c0bf080/read.aspx</link>
    </item>
    <item>
      <title>在Visual Studio 2008 SP1 中调试ASP页面</title>
      <category>技术文章</category>
      <pubDate>Sat, 06 Dec 2008 18:31:03 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/0afadb7f-b29f-4f6e-a581-0b510087e6b7/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;Visual Studio 2008 SP1 支持传统ASP文件的调试，具体做法如下：&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;1，在 IIS 里设置里“启用 ASP 服务器端脚本调试”，如图：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;http://dotnet.aspx.cc/article/aspdebug1.gif&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;1，在 IIS 里设置里“启用 ASP 服务器端脚本调试”，如图：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;http://dotnet.aspx.cc/article/aspdebug1.gif&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;2，使用VS2008 SP1打开ASP网站，如图：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;http://dotnet.aspx.cc/article/aspdebug2.gif&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;3，打开asp文件，然后“附加进程”，如图：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;http://dotnet.aspx.cc/article/aspdebug3.gif&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;4，在asp文件中设置断点，如图：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;http://dotnet.aspx.cc/article/aspdebug4.gif&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;5，用浏览器打开页面，VS2008 SP1就会在断点处停住。如图：&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;http://dotnet.aspx.cc/article/aspdebug5.gif&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;

</description>
      <link>http://dotnet.aspx.cc/article/0afadb7f-b29f-4f6e-a581-0b510087e6b7/read.aspx</link>
    </item>
    <item>
      <title>如何在不联网的情况下安装 Silverlight Tools</title>
      <category>技术文章</category>
      <pubDate>Sun, 30 Nov 2008 10:31:32 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/6942db26-a11f-4d4e-bc61-9f816710fcb1/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
首先，在安装之前，将你的系统和VS2008更新到最新的 SP1。然后按照下面的步骤进行下载并安装。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
1，下载Silverlight.2.0 Developer 运行时 Silverlight.2.0_Developer.exe，其实安装时下载的就是这个文件。下载地址：
&amp;lt;br/&amp;gt;
http://silverlight.dlservice.microsoft.com/download/C/2/1/C217945C-5492-4C12-B9F6-92D6302EF4CF/81005/Silverlight.2.0_Developer.exe
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
2，下载Silverlight tools 中文版 Silverlight_Tools.exe ，下载地址：&amp;lt;br/&amp;gt;
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=c22d6a7b-546f-4407-8ef6-d60c8ee221ed
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
3，下载 Microsoft Silverlight 2 软件开发工具包 silverlight_sdk.exe，这个文件Silverlight tools 中文版有，应当可以直接安装，下载地址：&amp;lt;br/&amp;gt;
http://www.microsoft.com/downloads/details.aspx?FamilyID=8d933343-038f-499c-986c-c3c7e87a60b3&amp;amp;DisplayLang=zh-cn
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
4，下载 Microsoft Silverlight 2 软件开发工具包（CHM单独文档），这个可选，安装这个，查找帮助方便，内容与上面的应该相同，下载地址：&amp;lt;br/&amp;gt;
http://silverlight.dlservice.microsoft.com/download/C/2/1/C217945C-5492-4C12-B9F6-92D6302EF4CF/81005/Silverlight.2.0_Developer.exe
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
5，&amp;lt;strong&amp;gt;最重要的一步&amp;lt;/strong&amp;gt;：C:\Documents and Settings\Administrator\Local Settings\Temp\临时文件夹下创建 Silverlight Tools RTW 文件，将Silverlight.2.0_Developer.exe文件拷贝到这个文件夹下，完整路径也就是 &amp;lt;br/&amp;gt;
C:\Documents and Settings\Administrator\Local Settings\Temp\Silverlight Tools RTW\Silverlight.2.0_Developer.exe。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
6，运行 Silverlight_Tools.exe 。
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
安装完毕后，运行VS2008，可能会要求你安装 Silverlight SDK，这个时候，执行 silverlight_sdk.exe 即可。这一步可能不是一定发生的。
&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;完全独立安装包下载：http://dotnet.51aspx.com/Exam/Silverlight2Setup.rar&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/6942db26-a11f-4d4e-bc61-9f816710fcb1/read.aspx</link>
    </item>
    <item>
      <title>在Visual Studio 2005或者Visual Studio 2008里实现拖动控件进行绝对定位？</title>
      <category>疑难解答</category>
      <pubDate>Wed, 26 Nov 2008 22:39:06 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/a07642f0-834b-4fef-bbfb-e35e0872346f/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;经常会有人问：如何在Visual Studio 2005或者Visual Studio 2008里面的HTML设计视图下，拖动控件进行绝对定位？其实，这个功能在Visual Studio 2003、Visual Studio 2002时是有的，在Visual Studio 2008里的实现方法是这样的：
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
打开“&amp;lt;strong&amp;gt;工具&amp;lt;/strong&amp;gt;”-“&amp;lt;strong&amp;gt;选项&amp;lt;/strong&amp;gt;”-“&amp;lt;strong&amp;gt;HTML 设计器&amp;lt;/strong&amp;gt;”-“&amp;lt;strong&amp;gt;CSS 样式&amp;lt;/strong&amp;gt;”-在右边勾选“&amp;lt;strong&amp;gt;对于使用工具箱、粘贴或者拖放添加的控件，将定位更改为绝对定位&amp;lt;/strong&amp;gt;”即可。
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/a07642f0-834b-4fef-bbfb-e35e0872346f/read.aspx</link>
    </item>
    <item>
      <title>在 App_Code 文件夹中同时使用两种语言编程的方法</title>
      <category>疑难解答</category>
      <pubDate>Wed, 26 Nov 2008 22:22:35 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/4667f3c8-f1c1-4beb-ba1d-06c0dea41981/read.aspx</guid>
      <description>&amp;lt;p&amp;gt;
我们知道，在 ASP.NET 2.0 之后，在同一网站下，既可以使用C#编写代码，同时也可以使用VB.NET编写代码，可以正确编译。然而，在 App_Code 文件夹中，默认情况下，只能使用一种语言，C#或者VB.NET来编写代码，否则或报告如下的错误：
&amp;lt;/p&amp;gt;
&amp;lt;p style=&amp;apos;color:red&amp;apos;&amp;gt;
文件“/WebSite2/App_Code/VBFolder/FileTest.vb”和“/WebSite2/App_Code/SetupUtility.cs”使用的语言不同，这是不允许的，因为它们要在一起编译。	
&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;
通过修改配置，可以实现在 App_Code 文件夹下使用两种语言进行编程。方法就是在web.config文件里，加入如下的配置
&amp;lt;/p&amp;gt;
&amp;lt;xmp&amp;gt;
&amp;lt;compilation debug=&amp;quot;true&amp;quot; defaultLanguage=&amp;quot;c#&amp;quot;&amp;gt;
  &amp;lt;codeSubDirectories&amp;gt;
    &amp;lt;add directoryName=&amp;quot;VBFolder&amp;quot; /&amp;gt;
  &amp;lt;/codeSubDirectories&amp;gt;
&amp;lt;/compilation&amp;gt;

&amp;lt;/xmp&amp;gt;
&amp;lt;p&amp;gt;
然后，在 App_Code 文件夹创建一个新文件夹，单独放置 VB.NET文件即可。
&amp;lt;/p&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/4667f3c8-f1c1-4beb-ba1d-06c0dea41981/read.aspx</link>
    </item>
    <item>
      <title>安装非英语版本的 Microsoft Visual Studio 2008 Service Pack 1 后，智能提示变为英文的临时补丁发布</title>
      <category>业内动态</category>
      <pubDate>Wed, 26 Nov 2008 21:51:06 GMT</pubDate>
      <guid isPermaLink="true">http://dotnet.aspx.cc/article/380d3ee7-e291-47be-9864-c7ce36dd4820/read.aspx</guid>
      <description>  &amp;lt;div&amp;gt;
    安装非英语版本的 Microsoft Visual Studio 2008 Service Pack 1 (SP 1) 后，某些本地化的 IntelliSense
    文本可能会还原为英语。 在 Visual Studio 2008 SP 1 下列语言版本会发生此问题：
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;中文 (简体)&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;中文 (繁体)&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;德语&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;西班牙语&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;法语&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;意大利语&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;日语&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;朝鲜语 &amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;
    支持修补程序是 Microsoft 提供的。 但是，此修复程序被用于解决本文中提到的问题。 此修复程序仅适用于正经历此特定问题的系统。 此修复程序可能会收到其他测试。
    因此，如果您受此问题的影响不严重，我们建议您等待包含此修复程序的下一个软件更新。 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;要从 MSDN 代码库，请下载此修复程序，请访问下面的 Microsoft
    Web 站点 （英文）： &amp;lt;br&amp;gt;
    &amp;lt;div class=&amp;quot;indent&amp;quot;&amp;gt;
      &amp;lt;a href=&amp;quot;http://code.msdn.microsoft.com/KB957507&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#810081&amp;quot;&amp;gt;http://code.msdn.microsoft.com/KB957507&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;span
        class=&amp;quot;pLink&amp;quot;&amp;gt; (http://code.msdn.microsoft.com/KB957507) &amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;br&amp;gt;&amp;lt;b&amp;gt;请注意 &amp;lt;/b&amp;gt;MSDN 代码库显示此修复程序可用该的语言。 如果看不列出您使用的语言请它是因为代码库资源页不可用于该语言。 &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;请注意
    &amp;lt;/b&amp;gt;如果发生其他问题或者任何疑难解答不需要，您可能必须创建单独的服务请求。 通常的支持成本将应用于其他支持问题和执行不适用于此特定修补程序的问题。 有关完整列表的
    Microsoft 客户服务和支持电话号码，或创建单独的服务请求，请访问下面的 Microsoft Web 站点： &amp;lt;br&amp;gt;
    &amp;lt;div class=&amp;quot;indent&amp;quot;&amp;gt;
      &amp;lt;a href=&amp;quot;http://support.microsoft.com/contactus/?ws=support&amp;quot;&amp;gt;&amp;lt;u&amp;gt;&amp;lt;font color=&amp;quot;#0000ff&amp;quot;&amp;gt;
        http://support.microsoft.com/contactus/?ws=support&amp;lt;/font&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;pLink&amp;quot;&amp;gt;
          (http://support.microsoft.com/contactus/?ws=support) &amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;h4 id=&amp;quot;tocHeadRef&amp;quot;&amp;gt;
      系统必备组件&amp;lt;/h4&amp;gt;
    您必须应用此修复程序之前安装 Visual Studio 2008 SP 1。
  &amp;lt;/div&amp;gt;

  &amp;lt;div&amp;gt;
    中文版下载地址参考：&amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;a href=&amp;quot;http://code.msdn.microsoft.com/KB957507/Wiki/View.aspx?title=Simplified%20Chinese&amp;amp;amp;referringTitle=Home&amp;quot;&amp;gt;
      http://code.msdn.microsoft.com/KB957507/Wiki/View.aspx?title=Simplified%20Chinese&amp;amp;amp;referringTitle=Home&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;</description>
      <link>http://dotnet.aspx.cc/article/380d3ee7-e291-47be-9864-c7ce36dd4820/read.aspx</link>
    </item>
  </channel>
</rss>