c#调用WebService实例
在Winform中对数据库进行操作缺乏安全性,因而可以使用Winform调用WebService来实现对数据库的各种操作。在VS2010中,创建一个Web服务程序,第一:创建一个空的Web应用程序,名字自己起。第二:鼠标右击刚刚创建的工程,选择添加,在弹出的框中选择Web服务, 自己起好名字,确定即可,这样就创建好一个Web服务程序了。

经过上上面的步骤,我们就可以添加方法来实现数据库的操作。
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Data;
namespace WebServerSQL
{
/// <summary>
/// WebServerGetSqlData 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebServerGetSqlData : System.Web.Services.WebService
{
//定义数据库连接对象
private SqlConnection con;
[WebMethod]
public DataSet GetInfo(string strSql)
{
string sqlConnect = "initial catalog=数据库名称;server=服务器名称;uid=sa;pwd=密码";
con = new SqlConnection(sqlConnect);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(strSql, con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
[WebMethod]
public bool testConnect()
{
try
{
//数据库连接,定义连接对象和连接字符串并打开
string sqlConnect = "initial catalog=数据库名称;server=服务器名称;uid=sa;pwd=密码";
con = new SqlConnection(sqlConnect);
con.Open();
return true;
}
catch
{
return false;
}
}
}
}
下面看看Winfrom下怎么调用WebService
首先要添加Web服务引用,在VS2010中,直接右击工程,在弹出的菜单中看不到添加Web引用,难道Winform中不能添加Web引用吗?通过验证,是可以添加的。我们只需要选择选择Web服务引用,然后在弹出的对话框中点击高级,然后你就会看到新弹出一个对话框里面就有添加Web引用,然后输入WebService服务的URL地址按照步骤完成即可。如下图:

然后在Winfrom中我们可以调用WebService提供的方法了,代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WinformGetWebServerSQL
{
public partial class FrmWebserver : Form
{
public FrmWebserver()
{
InitializeComponent();
}
//定义web服务对象
localhost.WebServerGetSqlData webData = new localhost.WebServerGetSqlData();
//测试数据库是否连接成功
private void btnTest_Click(object sender, EventArgs e)
{
if (webData.testConnect())
{
label2.Text = "成功";
}
else
{
label2.Text = "失败";
}
}
//显示数据库中表的数据
private void btnShow_Click(object sender, EventArgs e)
{
string strsql = "select * from item";
DataSet ds = webData.GetInfo(strsql);
DVShowInfo.DataSource = ds.Tables[0];
}
}
}
至此一个简单的调用webservice的程序就完成了,感兴趣的朋友可以在WebService中添加更多的方法,比如对数据库的增,删,改,查等供winform调用。
希望朋友们多多给点意见,大家共同学习进步!
c#调用WebService实例的更多相关文章
- PHP调用Webservice实例
原文 PHP调用Webservice实例 NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写的.通过HTTP收发S ...
- Salesforce 使用Js 调用Webservice实例
1,创建 Custom Button 在页面上 2, 创建CustomJs 代码调用Webservice <!--参数名区分大小写,对于跨层object直接在Object名后直接加参字段名即可- ...
- Js 调用 WebService 实例
Html页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/ ...
- C#调用WebService实例和开发
一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是 ...
- C#调用WebService实例和开发(转)
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
- 【转】C#调用WebService实例和开发
一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是 ...
- 用C#通过反射实现动态调用WebService 告别Web引用
我们都知道,调用WebService可以在工程中对WebService地址进行WEB引用,但是这确实很不方便.我想能够利用配置文件灵活调用WebService.如何实现呢? 用C#通过反射实现动态调用 ...
- C#调用webService的几种方法
转自: WebClient 用法小结 http://www.cnblogs.com/hfliyi/archive/2012/08/21/2649892.html http://www.cnblogs. ...
- 利用Java编写简单的WebService实例
使用Axis编写WebService比較简单,就我的理解,WebService的实现代码和编写Java代码事实上没有什么差别,主要是将哪些Java类公布为WebService. 以下是一个从编写測试样 ...
随机推荐
- 解决zabbix3.4图表显示中文乱码问题
问题描述: 在Zabbix界面设置中,已经调成中文语言,可能zabbix自身携带的字体还不够完美,出现如下乱码: 测试环境: zabbix 3.4(经测试,目前3.x版本都适用) 解决步骤: 1. 寻 ...
- Libre OJ 130、131、132 (树状数组 单点修改、区间查询 -> 区间修改,单点查询 -> 区间修改,区间查询)
这三题均可以用树状数组.分块或线段树来做 #130. 树状数组 1 :单点修改,区间查询 题目链接:https://loj.ac/problem/130 题目描述 这是一道模板题. 给定数列 a[1] ...
- 如何在Windows 10上运行Docker和Kubernetes?
如何在Windows 10上运行Docker和Kubernetes? 在Windows上学习Docker和Kubernetes,开始的时候会让你觉得无从下手.最起码安装好这些软件都不是一件容易的事情. ...
- A1040. Longest Symmetric String
Given a string, you are supposed to output the length of the longest symmetric sub-string. For examp ...
- anaconda的安装教程和使用方法
一.anaconda安装方法: 1.下载: anaconda官方下载地址:https://www.anaconda.com/download/ 2.安装: 可以自己指定路劲,也可以选择默认安装,最后记 ...
- RabbitMQ入门-竞争消费者模式
上一篇讲了个 哈喽World,现在来看看如果存在多个消费者的情况. 生产者: package com.example.demo; import com.rabbitmq.client.Channel; ...
- 原生JS实现$.ajax
function ajax(obj){ obj=obj||{}; obj.type=(obj.type||'GET').toUpperCase(); obj.dataType=obj.dataType ...
- MySQL存储过程实现动态执行SQL
--存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数 create procedure p_procedurecode(in sumdate varchar(1 ...
- 使用trash-cli防止rm -rf 误删除带来的灾难(“事前”非“事后”)
trash-cli是一个使用 python 开发的软件包,包含 trash-put.restore-trash.trash-list.trash-empty.trash-rm等命令,我们可以通过这写命 ...
- 解决python安装错误问题
遇到的问题描述: An error occurred during the installation of assemblyA Microsoft.VC90. CRT, version=9-0.307 ...