用户操作
[即时聊天] [发私信] [加为好友]
bai_bzl
bai_bzl的公告
 留言

聯係方式:
smiles163@163.com




月 [下月] [上月]

天氣預報


最近评论
wwwfanger:不错,源代码能提供下载吗?
friendbing:程序里引用了,谢谢
bai_bzl:webservice提供的是接口,怎么会不安全呢
xykwgjyygy:直接点调用铵钮,是不是不太安全呀,如何禁示,楼主,请指教?
piaosi142555:ORA-28000: the account is locked
第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba;
第二步:选择myjob,查看users;
第三步:选择system,右击点击“编辑”;
第四步:修改密码,把“帐户被锁住”的勾去掉;
第五步:点击“……
文章分类
收藏
    相册
    图片
    博客
    alldj的专栏
    best_dba的专栏
    circleoflife的专栏
    DanceFire的专栏( 安全方面)
    DKman803的专栏
    DotNet笔记
    FreeXploiT
    GOOGLE100的博客
    Hawk
    hongkong2007的专栏(项目管理)
    Kevins的天空
    lovemyselfbest csharp
    mengyao||Andy 路鑫 Dotnet World
    Mobidogs Blog
    mudboy的专栏
    skycliff的专栏
    sxy_8512
    The Space Of woodyboy
    uframer(焦冶)的专栏(D语言)
    weixu_2008的专栏
    冷枫@CSDN
    净心编程
    反对风格的专栏
    周公的专栏
    周老师科研站
    哎呀小笨蛋
    国际海员
    我和hacker有个约会
    报表
    李洪根的blog-SQL Server 存储过程的分页方案
    柠檬的味道
    箫箫博客
    编程岁月
    国外专家中文博客
    Bruce Eckel 博客中文版
    Herb Sutter 中文博客
    http://blog.csdn.net/ericnewcomer/
    Martin Fowler's Bliki 中文版
    Robert C. Martin博客中文版
    Rod Johnson专栏
    Scott Guthrie博客中文版
    网络
    爱国者黑客
    看雪学院
    黑客手册
    休闲
    Tjlian合集专区
    优秀网站
    DOTNET男孩社区
    中国人工智能创业研发俱
    算法源码吧
    资源网战
    AJAX技术资料集锦
    CodeGuru
    DeveloperWorks - IBM's resource for developers
    SoftWare Engieering Institute
    The Code Project - Free Source Code and Tutorials
    W3资料大全(HTML,CSS等教本)
    中国IT实验室下载频道
    天新网-WEBSERVICE
    太平洋电脑网C#技术
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 创建数据库Web Services收藏

    新一篇: SQL2000安装报错:以前的某个程序安装已在安装计算机上创建挂起的文件操作,运行安装程之前必须重新启动计算机  | 旧一篇: 通过Web Services上传和下载文件

    XML Web Services一个最显然的用处就是通用数据存取。通过它,你可以把公司的数据库被Internet上的许多客户端来访问,也可以动态地把它导入到第三方的Web站点上,甚至可以允许你的商业伙伴的Web Services去查询。下面就解释一下如何创建一个简单的Web Services,把你的数据库内容显示到Internet Explorer、第三方的Web Services和自定义的C#VB.net的客户端。

    合作伙伴、客户、雇员在使用为多种设备设计的数据时已经有相当丰富的经验了,不管你现在的数据库是如何组织的,为了确保通用性,Web Services向客户端返回XML格式的数据。例如:假如一个物流公司(你的合作伙伴)准备把你的货物运送给你的客户,当运送车到达客户的门前时,他的PDA上显示出发送地址改变的信息,此时,运货车就很轻易地把它运送到别的地方去,那是因为你的客户在数据库里改变了他的地址,这种变化也自动地在你的合作伙伴的系统里自动更新了。

    下面,就开始编写自己的ASP.NET数据库Web Services。首先,检查你的数据库,看它是否能够很轻易地就可以输出XML格式的数据,看看ADO.NET能否读出并进行动态转换。有些情况下,你可能需要对目前的数据库进行转换以满足这种需要。如果你的数据库访问代码变的很复杂,以致于会影响到伸缩性的情况,建议你对数据库进行转换。

    为简单起见,这里假设例子中的数据库只有一个“Products”表。当然,你的数据库可能有许多表,也可能你的Web Services需要访问不止一个数据库。

    现在,我们就可以开始写代码了。打开Visual Studio .NET,在DataBaseWebService目录下创建一个C#的ASP.NET Web Services项目,如图:

    在Service1.asmx上点击右键,把Service1.asmx更名为DataBaseWebService.asmx,这个文件将会包含有从数据库得到数据的WebMethods,然后,点击右键,选择“查看代码”,切换到代码视图,更改为DataBaseWebService类和构造器的名字。

    先在开始处引用.NET的类库:

    using System.Data.SqlClient; using System.Data.OleDb;

    然后更改类的名字为DataBaseWebService:

    public class DataBaseWebService : System.Web.Services.WebService { public DataBaseWebService() { //CODEGEN:该调用是 ASP.NET Web 服务设计器所必需的 InitializeComponent(); } ... }

    在Hello World方法的结尾处写上自己的方法代码,第一个方法SQLDB用来访问SQL Server数据库,它处理客户端发送的SQL Server查询,SQLDB的参数从浏览器地址栏传送的查询语句,所有的WebMethod方法的代码都有try/catch语句,用来处理查询失败时输出一些错误信息。如果WebMethod方法在运行时出现例外,catch语句产生一个数据集,是一个包含错误信息的Error表。

    SQLDB方法首先创建并打开SQL数据库连接,连接字符串在你的服务器上应当是唯一的,做为例子,我们使用Visual Studio .NET安装时自带的示例数据库;接下来,SQLDB方法创建SQL数据适配器,参数QUERY用来决定要返回的数据记录;最后产生查询结果的数据集,并一XML格式,并以Results为根节点的结果。代码如下:

    [WebMethod] public DataSet SQLDB(string Query) { try { SqlConnection CS = new SqlConnection("server=(local)\\NetSDK;database=Northwind;Trusted_Connection=yes"); SqlDataAdapter myCommand = new SqlDataAdapter (Query, CS); DataSet myDataSet = new DataSet(); myCommand.Fill(myDataSet, "Results"); return myDataSet; } catch(Exception ex) { return DataError(ex); } }

    用来查询Access数据库的方法与SQL基本相同,为了大家测试方便,全部代码如下:

    [WebMethod] public DataSet AccessDB(string Query) { try { string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.Server.MapPath("AccessWebServices.mdb"); OleDbConnection myAccessConn = new OleDbConnection(strAccessConn); OleDbCommand myAccessCommand = new OleDbCommand(Query,myAccessConn); OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand); myAccessConn.Open(); DataSet myDataSet = new DataSet(); myDataAdapter.Fill(myDataSet,"Results"); myAccessConn.Close(); return myDataSet; } catch(Exception ex) { return DataError(ex); } }

    最后写上处理错误的方法:

    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; }

    现在,你就可以编译该项目了,看看你的Web Services是否能正常工作。如果能正常工作,结果将如下所示:

    然后选择您的数据库类型,如下图所示:

    选择AccessDB(注意:在进行此操作之前,请先建立数据库AccessWebServices.mdb,并建立表AcessTableTest,并放到DataBaseWebService目录之下),在Query里输入“select * from AcessTableTest”,然后点“Invoke”,你就会得到一个XML格式的查询结果,显示如下:

    如果出现上图类似的结果,说明你的Web Services能够使用了。

    如果再配合XSL,就可以产生可以浏览的HTML页面了,你也可以直接在地址栏里输入:http://localhost/DataBaseWebService/DataBaseWebService.asmx/AccessDB?Query=select+*+from+AcessTableTest得到想要的数据。

    下面用C#写一个使用该Web Services的客户端应用程序。新建一个Windows应用程序的VS.net项目,名为WebServicesClient,在解决方案浏览器上点右键,选择添加Web引用,在弹出的对话框里输入:

    http://localhost/DataBaseWebService/DataBaseWebService.asmx

    然后点击“添加引用”,VS.NET就会把所需要的文件添加到你的项目里。在From1上添加菜单,并添加两个菜单项,“得到 SQL Server 产品列表”和“得到 Access 产品列表”,要使用我们刚才创建的Web Services,先创建Web Services的一个实例,如下所示:

    private void menuItem1_Click(object sender,System.EventArgs e) { WebServicesClient.localhost.DataBaseWebService Database = new WebServicesClient.localhost.DataBaseWebService(); DataSet ds = Database.SQLDB("select * from Products"); <a href="http://dev.21tx.com/dotnet/aspnet/datagrid/" target="_blank">DataGrid</a>1.DataSource = ds.Tables[0]; } private void menuItem2_Click(object sender,System.EventArgs e) { WebServicesClient.localhost.DataBaseWebService Database = new WebServicesClient.localhost.DataBaseWebService(); DataSet ds = Database.AccessDB("select * from AcessTableTest"); dataGrid1.DataSource = ds.Tables[0]; }

    最后,运行新建立的Window应用程序,就可以分别得到我们刚才所举的数据库里的数据了。如下图所示:

     

    发表于 @ 2007年10月26日 15:09:00|评论(loading...)|编辑

    新一篇: SQL2000安装报错:以前的某个程序安装已在安装计算机上创建挂起的文件操作,运行安装程之前必须重新启动计算机  | 旧一篇: 通过Web Services上传和下载文件

    评论

    #nnsword 发表于2007-11-01 13:45:00  IP: 60.165.18.*
    不错值得看看
    #yunhuasheng 发表于2008-03-03 10:38:03  IP: 58.211.198.*
    讲的太简单了,只是一个web service的一般应用例子。
    2008-03-12 09:13:15作者回复
    转载的,文章只是说说原理,复杂的根据自己的情况自己写就好了
    #xykwgjyygy 发表于2008-04-14 11:38:13  IP: 219.130.63.*
    直接点调用铵钮,是不是不太安全呀,如何禁示,楼主,请指教?
    #bai_bzl 发表于2008-05-06 15:39:16  IP: 221.223.25.*
    webservice提供的是接口,怎么会不安全呢
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © bai_bzl