100165696.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 413 行 · 第 1/2 页
HTM
413 行
<!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><title>
26.4.2 会议登记客户程序
</title></head>
<body>
<div class="area">
<div class="col1">
<div class="lineBlue">
</div>
<!-- title -->
<div class="arcTitle">
<h1>
<a href="../16">
C#高级编程(第3版)
</a>
</h1>
<div style="text-align: center; font-size: 15px">
<a href="100165696.htm">
26.4.2 会议登记客户程序
</a>
</div>
<div style="text-align: center; font-size: 15px">
<a class="url" href="../../default.htm">http://book.csdn.net/</a>
2006-10-13 14:41:00
</div>
<div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
<div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
图书导读
</div>
<div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
<!--导读-->
<h1 id="divCurrentNode" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165696.htm'><font color='red'>26.4.2 会议登记客户程序</font></a></h1>
<div id="divRelateNode" style="padding-left: 2px">
<div style='float:left;width:49%'>·<a href='100165693.htm'>26.3.2 使用Web服务</a></div><div style='float:right;width:49%'>·<a href='100165694.htm'>26.4 扩充会议登记示例</a></div><div style='float:left;width:49%'>·<a href='100165695.htm'>26.4.1 会议登记 Web服务</a></div><div style='float:right;width:49%'>·<a href='100165697.htm'>26.5 使用SOAP标题交换数据</a></div><div style='float:left;width:49%'>·<a href='100165698.htm'>26.6 小结</a></div><div style='float:right;width:49%'>·<a href='100165699.htm'>27.1 用户控件</a></div></div>
</div>
</div>
</div>
<!-- main -->
<div id="main">
<div id="text">
<div id="csdn_zhaig_ad_yahoo_2"></div>
<link href="css.css" rel="stylesheet" type="text/css" /><h3 style='margin-top:8.15pt;margin-right:0cm;FTEL:8.15pt;margin-left:
0cm'><a FTEL="_Toc507815263"><span lang=EN-US>26.4.2 </span></a><span
style='font-family:黑体'>会议登记客户</span><span style='font-family:黑体'>程序</span></h3>
<p class=MsoNormal><span style='font-family:宋体'>我们要使用的客户程序是第</span><span
lang=EN-US>25</span><span style='font-family:宋体'>章开发的</span><span lang=EN-US>Web</span><span
style='font-family:宋体'>应用程序</span><span lang=EN-US>PCSWebApp3</span><span
style='font-family:宋体'>。下面把这个应用程序命名为</span><span lang=EN-US>PCSWebApp4</span><span
style='font-family:宋体'>,并且使用</span><span lang=EN-US>PCSWebApp3</span><span
style='font-family:宋体'>中的代码作为开始代码。</span></p>
<p class=MsoNormal><span style='font-family:宋体'>对项目主要进行两方面的修改:第一,从应用程序中删除对数据库直接访问的部分,并使用</span><span
lang=EN-US>Web</span><span style='font-family:宋体'>服务代替;第二,引入一个</span><span
lang=EN-US>Web</span><span style='font-family:宋体'>服务返回的</span><span lang=EN-US>DataSet</span><span
style='font-family:宋体'>的应用程序层存储器,并且只有在必要时才对</span><span lang=EN-US>DataSet</span><span
style='font-family:宋体'>进行更新,这意味着将大大降低数据库的负担。</span></p>
<p class=MsoNormal><span style='font-family:宋体'>对于新的</span><span lang=EN-US>Web</span><span
style='font-family:宋体'>应用程序来说,首先需要添加对</span><span lang=EN-US>PCSWebSrv2/Service1.asmx</span><span
style='font-family:宋体'>服务的</span><span lang=EN-US>Web</span><span
style='font-family:宋体'>引用。添加的方法在本章的前面部分中已经讨论过,即在</span><span lang=EN-US>Server
Ecplorer</span><span style='font-family:宋体'>中右击项目,定位</span><span lang=EN-US>.asmx</span><span
style='font-family:宋体'>文件,调用</span><span lang=EN-US>Web</span><span
style='font-family:宋体'>引用</span><span lang=EN-US>eventDataService</span><span
style='font-family:宋体'>,单击</span><span lang=EN-US>Add Reference</span><span
style='font-family:宋体'>。</span></p>
<p class=MsoNormal><span style='font-family:宋体'>然后,把代码添加给</span><span
lang=EN-US>Global.asax</span><span style='font-family:宋体'>,方式与给</span><span
lang=EN-US>Web</span><span style='font-family:宋体'>服务添加代码的方式相同。添加的代码是非常简单的。首先,引用</span><span
lang=EN-US>Web</span><span style='font-family:宋体'>服务和命名空间</span><span
lang=EN-US>System.Data</span><span style='font-family:宋体'>:</span></p>
<p class=a6 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US>...</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>using
System.Data;</span></p>
<p class=2 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>using
PCSWebApp4.eventDataService;</span></p>
<p class=MsoNormal><span style='font-family:宋体'>接下来填充</span><span lang=EN-US>dataset</span><span
style='font-family:宋体'>,并且把它放到应用程序层的数据存储</span><span lang=EN-US>ds</span><span
style='font-family:宋体'>中:</span></p>
<p class=a6 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US> protected void
Application_Start(Object sender, EventArgs e)</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
{</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
Service1 dataService = new Service1();</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
DataSet ds = dataService.GetData();</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt'><span lang=EN-US>
</span><span lang=FR>Application["ds"] = ds;</span></p>
<p class=a6 style='margin-top:0cm;margin-right:0cm;FTEL:8.15pt;
margin-left:21.45pt;FTEL:18.45pt'><span lang=FR>
</span><span lang=EN-US>}</span></p>
<p class=MsoNormal><span style='font-family:宋体'>这样,</span><span lang=EN-US>PCSWebApp4</span><span
style='font-family:宋体'>所有的实例都可以使用这个</span><span lang=EN-US>DataSet</span><span
style='font-family:宋体'>对象,这意味着多个用户不用调用</span><span lang=EN-US>Web</span><span
style='font-family:宋体'>服务或是调用数据库就可以读取数据。</span></p>
<p class=MsoNormal><span style='font-family:宋体'>现在,需要修改</span><span lang=EN-US>WebForm1.aspx.cs</span><span
style='font-family:宋体'>文件,才能使用它。首先删除</span><span lang=EN-US>oleDbConnection1</span><span
style='font-family:宋体'>、</span><span lang=EN-US>daAttendees</span><span
style='font-family:宋体'>、</span><span lang=EN-US>daRooms</span><span
style='font-family:宋体'>以及</span><span lang=EN-US>daEvents</span><span
style='font-family:宋体'>的声明,因为将不再执行任何数据库访问工作。还可以删除</span><span lang=EN-US>InitializeComponent()</span><span
style='font-family:宋体'>中的</span><span lang=EN-US>oleDbConnection1</span><span
style='font-family:宋体'>初始化代码,然后与</span><span lang=EN-US>Global.asax.cs</span><span
style='font-family:宋体'>一样,需要给</span><span lang=EN-US>PCSWebApp4.eventDataService</span><span
style='font-family:宋体'>添加一个</span><span lang=EN-US>using</span><span
style='font-family:宋体'>语句,接下来修改</span><span lang=EN-US>Page_Load()</span><span
style='font-family:宋体'>,如下所示:</span></p>
<p class=a6 style='margin-top:8.15pt;margin-right:0cm;FTEL:0cm;
margin-left:21.45pt;FTEL:.0001pt;FTEL:18.45pt'><span
lang=EN-US> private void Page_Load(object sender,
System.EventArgs e)</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> {</span></p>
<p class=2 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> ds =
(DataSet)Application["ds"];</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
attendeeList.DataSource = ds.Tables["Attendees"];</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> roomList.DataSource
= ds.Tables["Rooms"];</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> eventTable =
ds.Tables["Events"];</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
eventDetails1.DataSource = eventTable;</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
eventDetails2.DataSource = eventTable;</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> if
(!this.IsPostBack)</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> {</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
System.DateTime trialDate = System.DateTime.Now;</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
calendar.SelectedDate = getFreeDate(trialDate);</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
this.DataBind();</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> }</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> else</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> {</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
eventDetails1.DataBind();</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US>
eventDetails2.DataBind();</span></p>
<p class=a6 style='margin-left:21.45pt;FTEL:18.45pt;line-height:13.0pt'><span
lang=EN-US> }</span></p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?