WCF初见之SQL数据库的连接和查询

转自:http://www.cnblogs.com/yc-755909659/archive/2012/06/12/2546279.html

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.现在就可以运行下了,效果图如下:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值