C# webservice调用数据库
2016-04-25 16:48
393 查看
1、首先建立一个WinCE项目和一个ASP.Net WebService应用程序。
1、新建一个WebService应用程序。
新建WebService后,会出现一个HolloWorld函数。如下所示:
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
我没做过Asp.Net的东西,对Asp.net不熟悉。于是就试着在它的下边添加我自己的函数即可。结构如下:
[WebMethod]
public string fun1()
{
return "Hello World";
}
按F5即可看到程序中的两个函数HelloWorld和fun1。在浏览器中点击这两个函数就可以看到调用它们的结果了。
2、在WebService中添加数据库访问函数
确定这么写WebService函数后开始添加数据库访问函数。
要访问数据库,必须添加对System.Data.SqlClient的引用因此,首先在文档头添加了如下引用:
using System.Data.SqlClient;
下边是一个测试能不能连接到数据库的函数:
[WebMethod]
public bool test()
{
string connStr = "server = 10.0.0.172;database=mydb;uid=sa;pwd=123456";
try
{
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
bool b = true;
conn.Close();
return b;
}
catch
{
return false;
}
}
按F5在在浏览器中看见两个函数。点击test函数调用他后可以看到如下结果:
<?xml version="1.0" encoding="utf-8" ?>
<boolean xmlns="http://tempuri.org/">true</boolean>
这是个XML文件。WebService传递数据是用过XML的形式传输的!
说明返回结果为true。访问数据库成功。
3、读取数据库中的内容
需要使用Dataset作为载体返回数据库中的数据。因此,添加了对System.data的引用:
using System.Data;
下边是我写的一个试验用的函数:
[WebMethod]
public DataSet reader()
{
string connStr = "server = 10.0.0.172;database=mydb;uid=sa;pwd=123456"; //database=数据库名,这里不能用database,要用Initial
Catalog=数据库名,不然连不上。
try
{
string sqlStr = "select * from admin";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlStr, new SqlConnection(connStr));
da.Fill(ds);
return ds;
}
catch (Exception exp)
{
return null;
}
}结果数据显示的很乱,就不贴了。看到的结果都是XML格式的。
4、新建WinCE项目,并添加Web引用
在解决方案中添加WinCE项目。命名为SDP。
此处需要注意的是:在点击添加Web引用后的窗口中有三个选项:
§ 此解决方案中的 Web 服务
§ 本地计算机上的 Web 服务
§ 浏览本地网络上的 UDDI 服务器
这三个选项都不能直接使用!
点击此解决方案中的 Web 服务后,在窗口上边的地址栏出现如下地址:
http://localhost:49350/Service1.asmx
将localhost替换成泥计算机的IP,然后才能在PDA中引用,否则WinCE对http://localhost:49350/Service1.asmx的解析将出现问题,很简单的问题。这样添加也会由于配置不正确而出现访问不了的问题!
最好是将WebService发布到IIS后再添加到WinCE的Web引用。(我是这么用的)添加的引用名为WebRef
5、在WinCE项目中调用WebService函数
添加引用:
using SDP.WebRef;
6、在程序中调用WebRef中的函数
首先我测试调用HelloWorld函数。响应一个button点击事件:
private void button1_Click(object sender, EventArgs e)
{
Service1 svs = new Service1();
MessageBox.Show(svs.HelloWorld());
}
测试结果抓了个图,如下:
7、调用刚才写的那个访问数据库的函数
第一步,确保项目中有对System.Data.的引用
using System.Data;
第二步:定义一个DataSet用于接受函数返回
第三步:用Datagrid显示数据
重写后响应button点击事件的代码如下:
private void button1_Click(object sender, EventArgs e)
{
Service1 svs = new Service1();
//MessageBox.Show(svs.HelloWorld());
DataSet ds = new DataSet();
ds = svs.reader();
this.dataGrid1.DataSource = ds.Tables[0];
}
1、新建一个WebService应用程序。
新建WebService后,会出现一个HolloWorld函数。如下所示:
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
我没做过Asp.Net的东西,对Asp.net不熟悉。于是就试着在它的下边添加我自己的函数即可。结构如下:
[WebMethod]
public string fun1()
{
return "Hello World";
}
按F5即可看到程序中的两个函数HelloWorld和fun1。在浏览器中点击这两个函数就可以看到调用它们的结果了。
2、在WebService中添加数据库访问函数
确定这么写WebService函数后开始添加数据库访问函数。
要访问数据库,必须添加对System.Data.SqlClient的引用因此,首先在文档头添加了如下引用:
using System.Data.SqlClient;
下边是一个测试能不能连接到数据库的函数:
[WebMethod]
public bool test()
{
string connStr = "server = 10.0.0.172;database=mydb;uid=sa;pwd=123456";
try
{
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
bool b = true;
conn.Close();
return b;
}
catch
{
return false;
}
}
按F5在在浏览器中看见两个函数。点击test函数调用他后可以看到如下结果:
<?xml version="1.0" encoding="utf-8" ?>
<boolean xmlns="http://tempuri.org/">true</boolean>
这是个XML文件。WebService传递数据是用过XML的形式传输的!
说明返回结果为true。访问数据库成功。
3、读取数据库中的内容
需要使用Dataset作为载体返回数据库中的数据。因此,添加了对System.data的引用:
using System.Data;
下边是我写的一个试验用的函数:
[WebMethod]
public DataSet reader()
{
string connStr = "server = 10.0.0.172;database=mydb;uid=sa;pwd=123456"; //database=数据库名,这里不能用database,要用Initial
Catalog=数据库名,不然连不上。
try
{
string sqlStr = "select * from admin";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlStr, new SqlConnection(connStr));
da.Fill(ds);
return ds;
}
catch (Exception exp)
{
return null;
}
}结果数据显示的很乱,就不贴了。看到的结果都是XML格式的。
4、新建WinCE项目,并添加Web引用
在解决方案中添加WinCE项目。命名为SDP。
此处需要注意的是:在点击添加Web引用后的窗口中有三个选项:
§ 此解决方案中的 Web 服务
§ 本地计算机上的 Web 服务
§ 浏览本地网络上的 UDDI 服务器
这三个选项都不能直接使用!
点击此解决方案中的 Web 服务后,在窗口上边的地址栏出现如下地址:
http://localhost:49350/Service1.asmx
将localhost替换成泥计算机的IP,然后才能在PDA中引用,否则WinCE对http://localhost:49350/Service1.asmx的解析将出现问题,很简单的问题。这样添加也会由于配置不正确而出现访问不了的问题!
最好是将WebService发布到IIS后再添加到WinCE的Web引用。(我是这么用的)添加的引用名为WebRef
5、在WinCE项目中调用WebService函数
添加引用:
using SDP.WebRef;
6、在程序中调用WebRef中的函数
首先我测试调用HelloWorld函数。响应一个button点击事件:
private void button1_Click(object sender, EventArgs e)
{
Service1 svs = new Service1();
MessageBox.Show(svs.HelloWorld());
}
测试结果抓了个图,如下:
7、调用刚才写的那个访问数据库的函数
第一步,确保项目中有对System.Data.的引用
using System.Data;
第二步:定义一个DataSet用于接受函数返回
第三步:用Datagrid显示数据
重写后响应button点击事件的代码如下:
private void button1_Click(object sender, EventArgs e)
{
Service1 svs = new Service1();
//MessageBox.Show(svs.HelloWorld());
DataSet ds = new DataSet();
ds = svs.reader();
this.dataGrid1.DataSource = ds.Tables[0];
}
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法