- 浏览: 130620 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
hulibo:
太简单了 没参考价值
网上商城的数据库设计 -
lfc:
[img][/img][url][/url][flash= ...
Petshop 4.0 详细解释 -
早上好朋友:
引用
自学MVC(十):自己写的通用的JS分页控件-2009年05月27日 -
早上好朋友:
[flash=200,200][/flash][url][/u ...
自学MVC(十):自己写的通用的JS分页控件-2009年05月27日 -
银杏树:
参考一下。
网上商城的数据库设计
项目要求:(简单点讲)
1、客户端通过web站点上传XML,XML文件在web站点首先解析成DataSet,所以上传给WebService只是DataSet,你也可以上传XML文件到WebService服务器,这里以前者为例。
2、WebService接收客户端传来的DataSet,将DataSet插入到数据库。
3、客户端查询,通过web引用,查询结果返回客户端。
-------最先要解决的问题是你要阅读和了解WebService相关的知识------
第一步:创建你的webservice,打开VS2005---新建网站----Asp.Net Web服务---确定
第二步:网站自动给你生成了一个asmx文件----现在你就可以运行这个简单的webservice,之后你就可以看到那个"Hello World"。
第一步:创建你的WebSite,就是asp.net站点
//当然开发前,你可以先不新建asp.net站点,我就直接在webservice本地操作,我觉得这样比较好。
1:【上传功能】
第一步:在你的web站点拖入一个上传控件FileUpload,这个控件的作用就是选择本地的xml文件,在本地转化为dataset,你要传给webservice的是dataset。具体代码如下:
//=================客户端上传Xml文件====================
protected void btnUpload_Click(object sender, EventArgs e)
{
//fullfileName获得全路径
string fullfileName = this.fileUpload.PostedFile.FileName;
//获得文件名
fileName = fullfileName.Substring(fullfileName.LastIndexOf("\\") + 1);
//文件类型
string fileType = fullfileName.Substring(fullfileName.LastIndexOf(".") + 1);
if (this.fileUpload.PostedFile.FileName != null)
{
if (fileType.ToLower() == "xml")
{
DataSet ds = new DataSet();
ds.ReadXml(fullfileName);
//调用webService中的方法.
myService.getXml(ds);
//成功后提示,代码省略
}
else
{
//失败后提示,代码省略
}
}
else
{
this.lblMessage.Text = "请选择你要上传的文件,谢谢!";
}
}
你在站点上上传了一个dataset,所以webservice就要有一个方法来接收它,代码如下:
//================上传XML文件===================
[WebMethod]
public bool getXml(DataSet dataSet)
//public DataSet getXml(DataSet dataSet)
{
//连接数据库,这里面随你怎么连接数据库,只要能连上就可以了。
DB db = new DB();
SqlConnection con = db.sqlCon();
con.Open();
DataSet c_dataSet = new DataSet();
//将用户传过来的dataSet赋值给c_dataSet.
c_dataSet = dataSet;
//这里调用了存储过程.
//读者只要将sp_MVP改为select * from MVP,其它的照例,不用存储管理的话把蓝色那行都删掉.
SqlDataAdapter sda = new SqlDataAdapter("sp_MVP",con);
sda.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder mysqlcommand = new SqlCommandBuilder(sda);
sda.Update(c_dataSet, "MVP");
SqlDataAdapter sda1 = new SqlDataAdapter("sp_OtherCompetencies", con);
sda1.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder mysqlcommand1 = new SqlCommandBuilder(sda1);
sda1.Update(c_dataSet, "OtherCompetencies");
SqlDataAdapter sda2 = new SqlDataAdapter("sp_OtherCompetency", con);
sda2.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder mysqlcommand2 = new SqlCommandBuilder(sda2);
sda2.Update(c_dataSet, "OtherCompetency");
SqlDataAdapter sda3 = new SqlDataAdapter("sp_Publications", con);
sda3.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder mysqlcommand3 = new SqlCommandBuilder(sda3);
sda3.Update(c_dataSet, "Publications");
SqlDataAdapter sda4 = new SqlDataAdapter("sp_Publication", con);
sda4.SelectCommand.CommandType = CommandType.StoredProcedure;
SqlCommandBuilder mysqlcommand4 = new SqlCommandBuilder(sda4);
sda4.Update(c_dataSet, "Publication");
//处理所以的请求(更新).
c_dataSet.AcceptChanges();
con.Close();
return true;
}
首先要在webservice服务器建立数据库,有五张表MVP,OtherCompetencies......这里webservice要连接数据库了,这里是连接sql2005,o(∩_∩)o...哈哈,我相信这里连接数据库会让你很郁闷的,实在没辙了来找我,^_^
现在就可以试试效果了!当然不可以一下就能成功,多调试!
2:[查询功能]
查询是在webservice里面实现的,代码如下:
//=================用户查询=====================
[WebMethod]
//public DataSet searchData(string mvpguid,string fristname,string lastname)
public DataSet searchData(string mvpguid)
{
//连接数据库
DB dataBase = new DB();
SqlConnection con = dataBase.sqlCon();
con.Open();
//用户查询得到的将是myDataSet.
DataSet myDataSet = new DataSet();
try
{
SqlDataAdapter myAdapter = new SqlDataAdapter();
if (mvpguid != "")
{
//按照用户输入的mvpguid进行查询.
myAdapter.SelectCommand = new SqlCommand("select * from MVP where MVPGUID='"+mvpguid+"'", con);
SqlCommandBuilder myCB = new SqlCommandBuilder(myAdapter);
myAdapter.Fill(myDataSet, "MVP");
//建立表间关系.
SqlDataAdapter myAdapter1 = new SqlDataAdapter("select OtherCompetencies.OtherCompetencies_Id,OtherCompetencies.MVP_Id from MVP,OtherCompetencies where MVP.MVP_Id=OtherCompetencies.MVP_Id and MVP.MVPGUID='" + mvpguid + "'", con);
SqlCommandBuilder myCB1 = new SqlCommandBuilder(myAdapter1);
myAdapter1.Fill(myDataSet, "OtherCompetencies");
SqlDataAdapter myAdapter2 = new SqlDataAdapter("select OtherCompetency.OtherCompetencies_Id,OtherCompetency.OtherCompetency_Text from MVP,OtherCompetencies,OtherCompetency where MVP.MVP_Id=OtherCompetencies.MVP_Id and OtherCompetencies.OtherCompetencies_Id=OtherCompetency.OtherCompetencies_Id and MVP.MVPGUID='" + mvpguid + "'", con);
SqlCommandBuilder myCB2 = new SqlCommandBuilder(myAdapter2);
myAdapter2.Fill(myDataSet, "OtherCompetency");
SqlDataAdapter myAdapter3 = new SqlDataAdapter("select Publications.Publications_Id,Publications.MVP_Id from Publications,MVP where MVP.MVP_Id=Publications.MVP_Id and MVP.MVPGUID='" + mvpguid + "'", con);
SqlCommandBuilder myCB3 = new SqlCommandBuilder(myAdapter3);
myAdapter3.Fill(myDataSet, "Publications");
SqlDataAdapter myAdapter4 = new SqlDataAdapter("select Publication.Publications_Id,Publication.Id,Publication.Title,Publication.Publisher,Publication.DatePublished,Publication.Abstract,Publication.UrlLink from MVP,Publications,Publication where MVP.MVP_Id=Publications.MVP_Id and Publications.Publications_Id=Publication.Publications_Id and MVP.MVPGUID='" + mvpguid + "'", con);
SqlCommandBuilder myCB4 = new SqlCommandBuilder(myAdapter4);
myAdapter4.Fill(myDataSet, "Publication");
//Create DataRelation, and add it to the DataSet.
DataRelation dr = new DataRelation("MVPToOtherCompetencies", myDataSet.Tables["MVP"].Columns["MVP_Id"],
myDataSet.Tables["OtherCompetencies"].Columns["MVP_Id"]);
DataRelation dr1 = new DataRelation("OtherCompetenciesToOtherCompetency", myDataSet.Tables["OtherCompetencies"].Columns
["OtherCompetencies_Id"], myDataSet.Tables["OtherCompetency"].Columns["OtherCompetencies_Id"]);
DataRelation dr2 = new DataRelation("MVPToPublications", myDataSet.Tables["MVP"].Columns["MVP_Id"], myDataSet.Tables
["Publications"].Columns["MVP_Id"]);
DataRelation dr3 = new DataRelation("PublicationsToPublication", myDataSet.Tables["Publications"].Columns["Publications_Id"],
myDataSet.Tables["Publication"].Columns["Publications_Id"]);
//获取或设置一个指示DataRelation对象是否嵌套的值.
dr.Nested = true;
dr1.Nested = true;
dr2.Nested = true;
dr3.Nested = true;
//创建关系到集合中
myDataSet.Relations.Add(dr);
myDataSet.Relations.Add(dr1);
myDataSet.Relations.Add(dr2);
myDataSet.Relations.Add(dr3);
}
}
catch (SqlException exception)
{
return DataError(exception);
}
return myDataSet;
}
//====================错误信息=======================
public DataSet DataError(Exception ex)
{
DataSet errDS = new DataSet("Errors");
DataTable errTable = errDS.Tables.Add("Error");
errTable.Columns.Add("Message");
errTable.Rows.Add(new Object[] { ex.Message });
return errDS;
}
代码有点多,呵呵,然后你在客户端只要引用它的接口就可以了,这样会更好理解一点,代码如下:
//====================客户端查询函数=====================
protected void btnSearch_Click1(object sender, EventArgs e)
{
string c_mvpGuid = "";
try
{
c_mvpGuid = this.txtByMVPGUID.Text.ToString();
//getDataSet对象获得查询返回的ds.
DataSet getDataSet = myService.searchData(c_mvpGuid);
///查询默认显示为MVP表.测试的时候在index.aspx页面上显示.
this.dgResult.DataSource = getDataSet.Tables["MVP"].DefaultView;
this.dgResult.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
要是有什么不懂的地方,你可以留言,我会给你答复。^_^
呵呵,忘了一件事,如果你用自己的xml文件,自己的数据库,那就没事了,不是的话看看:
<?xml version="1.0" encoding="utf-8"?>
<MVPData>
<MVP>
<MVPGUID>f8433e20-c9af-4b48-9c83-2fc235393f31</MVPGUID>
<FirstName>Rafael Andrada</FirstName>
<LastName>[McPegasus]</LastName>
<Photo>
</Photo>
<Bio>
</Bio>
<StartAnivDate>10/1/2002 12:00:00 AM</StartAnivDate>
<Subsidiary>Spain</Subsidiary>
<Region>EMEA</Region>
<Certifications>
</Certifications>
<Language>Spanish</Language>
<Product>Microsoft Office Access</Product>
<KbTitle>Community Solutions KB Articles written by Rafael Andrada [McPegasus]</KbTitle>
<KbUrl>http://support.microsoft.com/search/default.aspx?Queryc=kbpubmvpKbUrl>
<OtherCompetencies>
<OtherCompetency>Microsoft Office FrontPage</OtherCompetency>
</OtherCompetencies>
<SpeakingEngagements>
</SpeakingEngagements>
<Publications>
<Publication>
<Id>db845d0e-1e66-474e-a6c8-5f8a8225c703</Id>
<Title>http://ava4os.webcindario.com</Title>
<Publisher />
<DatePublished />
<Abstract />
<UrlLink>http://ava4os.webcindario.com</UrlLink>
</Publication>
</Publications>
<Conferences>
</Conferences>
</MVP>
<MVP>
..........
</MVP>
</MVPData>
webservice可不可以脱离IIS运行
答案是肯定的。
接触webservice不到两个星期,感觉实现一个webservice真的是其乐无穷!我想说的是:你遇到的错误越多,学的东西也越多。
////这里先说在没有IIS的情况下,实现站点对webservice服务的引用。
如果你知道怎么新建(添加)解决方案的话就ok了,要是不知道的话,当你关闭你的网站或者服务的话会提示你保存解决方案。默认的解决方案保存在
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\'你的解决方案'
第一步:打开你的webService,webSite。
第二步:运行你的webService,当出现了有webservice方法界面的时候,请不要关闭浏览器(IE),复制浏览器的地址:如http://localhost:1516/WebServices/myService.asmx
第三步:这个时候如果你以前的website访问webservice的方式是在建立在iis上的话,那可能要更新你的web引用了,最好是删除你以前的web引用把,^_^
第四步:添加web引用,出现了一个对话框,这个时候你找
此解决方案中的 Web 服务
本地计算机上的 Web 服务
都可能找不到,还记得第二步的那个复制把,把复制的那个地址粘贴到对话框的url里面,点击前往,这样就一定能找到了。估计很多人都不知道把!
第五步:现在通过你的website调用webservice上的服务看看效果把!
////接下来把你的webservice,website放在iis下面看看,步骤差不多,自己慢慢尝试。
发表评论
-
webservice的几种调用方法
2009-10-10 17:35 1303一、WebService在cs后台程序中的调用 ... -
我是如何学习设计模式的十:工厂模式-这个是我花的心思最多的
2009-10-09 10:39 1128工厂模式 为什么会出 ... -
Asp.net ViewState
2009-08-27 14:20 1415ASP.NET中的ViewState ViewSta ... -
Stack,Queue,SortedList
2009-08-04 15:23 939using System; using System.Dat ... -
匿名方法
2009-08-04 09:21 885匿名方法优点:减少系统开销,在真正委托调用时才定义。 usi ... -
C#生成缩略图
2009-07-13 10:01 1710using System; using System.Dat ... -
.net MD5
2009-06-17 10:19 936using System; using System.Dat ... -
给RadionButtonList控件加onclick属性
2009-05-13 16:25 1107RadionButtonList _Specialclassi ... -
设计模式学习笔记七:常用设计模式原则总结
2009-05-12 15:43 1051前面学习了一部分创建 ... -
设计模式学习笔记六——Adapter模式
2009-05-12 15:42 762动机:将一个类的接口转换成客户希望的另外一个接口,使得原本由于 ... -
设计模式学习笔记六:.NET反射工厂
2009-05-12 15:02 40591. 简述 通过前面的学习,我们以传统的方式实现了 ... -
设计模式学习笔记五——Prototype模式
2009-05-12 15:01 1109动机:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创 ... -
设计模式学习笔记五:抽象工厂(Abstract Factory)
2009-05-12 14:58 14741.概述 意图: 提供一个创建一系列相关 ... -
设计模式学习笔记四——Builder模式
2009-05-12 14:52 1156动机:一个复杂对象由多个子对象构成,该对象创建的算法相对不变, ... -
设计模式学习笔记四:工厂方法(Factory Method)
2009-05-12 14:51 9221.概述 在软件系统中,经常面临着“某个对象”的创建工作 ... -
设计模式学习笔记三——Abstract Factory模式
2009-05-12 14:51 1023动机:实现一系列相互依赖对象的创建,通过封装系列对象创建来隔离 ... -
设计模式学习笔记三:简单工厂(Simple Factory)
2009-05-12 14:50 923开始学习创建型模式,这些模式的使用是面向接口编程的必然结果,面 ... -
设计模式学习笔记二——Singleton模式
2009-05-12 14:49 888意图:出于某种目的(如性能考虑、逻辑性要求)要求一个类的实例只 ... -
设计模式学习笔记二:面向对象基础六之委托与事件
2009-05-12 14:48 1227委托 委托作为函 ... -
设计模式学习笔记二:面向对象基础五之集合和泛型
2009-05-12 14:47 991数组 数组的优点:数组在内存中连续存储,可以快速而容易的 ...
相关推荐
1. **创建和调试ASP.NET应用程序**:从搭建开发环境到编写代码、调试和部署的全过程。 2. **使用ASP.NET控件**:如GridView、Repeater等,用于数据展示和用户交互。 3. **数据库集成**:通过ADO.NET或Entity ...
ASP.NET邮件发送Web服务是一种基于ASP.NET技术构建的网络服务,允许开发者通过Web接口发送电子邮件。...理解并熟练运用`MailMessage`和`SmtpClient`类,以及如何在Web服务中部署和调用这些功能,是开发此类服务的关键。
使用ASP.NET WebService,开发者可以创建XML Web服务,这些服务能够跨平台、跨语言地交换数据,使得不同系统间的数据共享变得简单。 创建一个天气预报的WebService,开发者需要实现以下步骤: 1. **设置项目**:在...
通过深入理解.NET框架下的WebService工作原理,以及熟练运用Visual Studio提供的开发环境,开发者可以轻松地构建跨平台、跨语言的分布式应用。无论是初学者还是有经验的开发者,都能从这个学习资料中获益,进一步...
在NetBeans 6.0版本中,它提供了对Web服务的全面支持,包括创建、消费、调试和部署Web服务。 **三、创建Web服务** 1. **新建项目**:首先,打开NetBeans 6.0,选择“文件”>“新建项目”,在项目类型中选择“Web...
这个项目中的详细说明可能涵盖如何创建和部署WebService,如何在C#代码中实现数据库操作,以及如何在客户端调用WebService。通过实践,开发者可以深入理解WebService的生命周期,以及如何在实际项目中运用。 总之,...
【ASP.NET与Web Service实例剖析】是一场技术讲座或教程,...通过这次实例剖析,开发者不仅可以深入理解ASP.NET和Web Service的核心概念,还能学习如何在实际项目中有效地运用它们,从而提升开发效率和应用程序质量。
5. **ASP.NET集成**:学习如何在ASP.NET环境中创建和部署WebService,以及配置Web.config文件以支持Ajax调用。 通过深入学习这三个示例,你可以熟练掌握Ajax和JavaScript调用WebService的基本方法,这对于开发实时...
本书详细介绍了如何使用Visual Studio 进行ASP.NET 项目的创建、编辑、调试及部署等操作。 #### 三、ASP.NET 的语言基础 - **C# 语法概览**:C# 是开发ASP.NET 应用程序的主要语言之一。这部分内容涵盖C# 的基本...
这本书详细介绍了Apache Axis在WebService开发中的应用,包括如何创建、部署和使用Web Services。它不仅覆盖了WebService的基础概念,如SOAP(简单对象访问协议)和WSDL(Web服务描述语言),还深入探讨了高级特性...
【C#编写的WebService服务端与调用端详解】 在.NET框架中,C#是一种广泛使用的编程语言,尤其在创建Web服务...通过实例中的代码和步骤,开发者可以掌握创建和使用WebService的基本流程,从而在实际项目中灵活运用。
可能是用Java、.NET或其他支持WebService技术的语言编写的,它展示了如何创建和部署一个WebService,以及如何定义服务操作。 3. **八优短信HTTP网接口文档.doc**:这同样是一个文档,可能详细阐述了HTTP方式下的接口...
2. 部署前验证:在正式部署前,确保WebService的稳定性和可靠性。 3. 运维监控:在生产环境中,持续监控WebService性能,及时发现并解决问题。 4. 客户验收:提供给客户测试环境,让客户验证功能,确保满足需求。 ...
4. **创建Web服务**:使用C#.NET和.NET Framework,开发者可以通过继承`System.Web.Services.WebService`类来创建Web服务。定义公共方法并使用XML注解(如 `[WebMethod]`)来指定可调用的服务操作。 5. **SOAP消息...
.NET Framework概述:介绍.NET Framework作为一个平台的角色,用于构建、部署和运行XML Web Services及应用程序。其包括公共语言运行库(CLR)和.NET Framework类库集, CLR管理内存、线程执行等,而类库集提供面向...
在C#中,通过使用ASP.NET技术,我们可以轻松创建和消费WebService。以下是一个初学者如何创建和调试WebService的详细步骤。 **一、新建一个Web项目** 在Visual Studio 2015中,首先需要新建一个解决方案,然后在...
WebService在.NET中的实战应用主要涉及两个关键点:创建和调用Web服务,以及优化Web服务的性能。...在实际开发中,理解并熟练运用这些知识点,可以有效提升WebService在.NET环境下的应用质量与性能。
创建服务代理类的实例,这是与Webservice交互的入口点。 4. **调用Webservice方法**: 通过代理对象调用对应的方法,传递参数并接收返回结果。 5. **处理响应**: 接收到的响应通常为SOAP格式的XML数据,需要...
首先,ASIS2是用于构建Web服务的一个框架,它提供了强大的工具和API,帮助开发者快速、高效地创建和部署Web服务。在这个"asis2 webservice 复杂点的例子"中,我们将不依赖官方提供的基础示例,而是自主配置`service....
本研究深入探讨了如何运用WebService技术来实现跨平台、跨语言的数据交换,旨在揭示其在实际应用中的工作原理和实施策略。 【正文】: WebService是一种开放式的、基于Web的协议,它通过HTTP(超文本传输协议)...