WCF初见之SQL数据库的连接和查询-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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






本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/archive/2012/06/12/2546279.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章