WCF初见之SQL数据库的连接和查询
1.首先要连接数据库,自然要有数据库啦,创建一个数据库表TEST1,并插入数据:
----使用数据库test USE test ----创建一个表TEST1 CREATE TABLE TEST1 ( TNAME CHAR(20) PRIMARY KEY NOT NULL, TINTRO VARCHAR(200) NOT NULL ) ----向表TEST1内插入数据 INSERT INTO TEST1(TNAME,TINTRO) VALUES('Intel','世界上最大的CPU及相关芯片制造商') INSERT INTO TEST1(TNAME,TINTRO) VALUES('Microsoft','全球最著名的软件商,美国软件巨头微软公司的名字') INSERT INTO TEST1(TNAME,TINTRO) VALUES('AMD','世界第二大CPU制造商') INSERT INTO TEST1(TNAME,TINTRO) VALUES('Sumsung','韩国三星公司,著名的彩显制造商,也生产光驱、家用电器等') INSERT INTO TEST1(TNAME,TINTRO) VALUES('Apple','美国苹果电脑公司,该公司以生产高性能专业级电脑著称于世') ----查询TEST1的内容 SELECT TNAME,TINTRO FROM TEST1
2.下面就是WCF服务的创建了,直接创建一个WCF服务应用程序,项目名称为“Connect2SQL”,如下图:
3.然后再IService1.cs中定义 WCF服务协定,具体代码如下:
using System; using System.ServiceModel; using System.Data; namespace Connect2SQL { [ServiceContract] public interface IService1 { //打开数据库 [OperationContract] void openSql(); //关闭数据库 [OperationContract] void closeSql(); //查询数据 [OperationContract] DataSet querySql(); } }
4.再在Service1.svc.cs中实现WCF服务协定,具体代码如下:
using System; using System.ServiceModel; using System.Data; using System.Data.SqlClient; namespace Connect2SQL { // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together. public class Service1 : IService1 { //连接数据库 SqlConnection strCon = new SqlConnection("server=SQLServer服务器名称;database=数据库名称;uid=用户名;pwd=密码"); /// <summary> /// 打开数据库 /// </summary> /// <returns></returns> public void openSql() { strCon.Open(); } /// <summary> /// 关闭数据库 /// </summary> /// <returns></returns> public void closeSql() { strCon.Close(); } /// <summary> /// 查询表TEST1中的数据 /// </summary> /// <returns></returns> public DataSet querySql() { try { openSql(); string strSql = "SELECT TNAME,TINTRO FROM TEST1"; DataSet ds = new DataSet(); SqlDataAdapter s = new SqlDataAdapter(strSql, strCon); s.Fill(ds); return ds; }catch(Exception ex) { throw ex; }finally{ closeSql(); } } } }
5.启动服务,得到服务地址并新建一个名为“ShowData”的Web客户端,然后在Web客户端添加服务引用,具体过程见WCF初见之HelloWorld ,再在Web页面添加个GridView组件,具体代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="getData.aspx.cs" Inherits="ShowData.getData" %> <!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 runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> 数据库的连接<br /> <br /> <asp:GridView ID="showData" runat="server" AutoGenerateColumns="False" > <Columns> <asp:BoundField DataField="TNAME" HeaderText="公司名称" /> <asp:BoundField DataField="TINTRO" HeaderText="公司简介" /> </Columns> </asp:GridView> </form> </body> </html>
6.然后就是在Web页面编写事件,把查询到的数据显示到GridView组件中去,具体代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ShowData { public partial class getData : System.Web.UI.Page { //实例化WCF服务端的类 host.Service1Client sql = new host.Service1Client(); protected void Page_Load(object sender, EventArgs e) { //把查询到的数据显示到GridView组件中去 showData.DataSource = sql.querySql(); showData.DataBind(); } } }
7.现在就可以运行下了,效果图如下: