`
lin9feng
  • 浏览: 14021 次
社区版块
存档分类
最新评论

WCF 访问SQLServer数据库服务代码

 
阅读更多

建立WCF可以程序的远程跨平台服务,实现最大的兼容性,而且可以通过TCP,UDP,Http等多种方式传输数据,下面是WCF服务器端实现访问SQLServer数据库访问的代码。

 

定义WCF服务的ISqlService.cs文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace WCFSql
{
    [ServiceContract]
    public interface ISqlService
    {
        //服务定义
        [OperationContract]
        DataSet GetDataSet(ref SqlPara para);//获取Dataset

        [OperationContract]
        bool ExeSQL(ref SqlPara para);//执行SQL语句
    }

    //数据定义
    [DataContract]
    public class SqlPara
    {
        string SqlStr = "";//SQL语句
        string ErrStr = "";//如果有错误产生,此参数返回错误信息

        [DataMember]
        public string SqlString
        {
            get { return SqlStr; }
            set { SqlStr = value; }
        }

        [DataMember]
        public string ErrorString
        {
            get { return ErrStr; }
            set { ErrStr = value; }
        }
    }
}

 

实现WCF服务的SqlService.svc.cs文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace WCFSql
{
    public class SqlService : ISqlService
    {
        const string ConnStr = "Data Source=szdb-02;Initial Catalog=SDS;Persist Security Info=True;User ID=sa;Password=szpj@2011";//连接字符串

        /// <summary>
        /// 执行SQL语句,包括存储过程等获取数据集
        /// </summary>
        /// <param name="para">SQL参数</param>
        /// <returns></returns>
        public DataSet GetDataSet(ref SqlPara para)
        {
            SqlConnection conn = new SqlConnection(ConnStr);
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(para.SqlString, conn);
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();

                adp.Fill(ds);
                para.ErrorString = "";
                conn.Close();

                return ds;
            }
            catch (Exception ex)
            {
                if (conn.State == ConnectionState.Open) conn.Close();
                para.ErrorString = ex.Message;
                return null;
            }

        }

        /// <summary>
        /// 执行SQL语句,Insert Delete Update等
        /// </summary>
        /// <param name="para">SQL参数</param>
        /// <returns></returns>
        public bool ExeSQL(ref SqlPara para)
        {
            SqlTransaction tran = null;
            SqlConnection conn = new SqlConnection(ConnStr);
            try
            {
                conn.Open();
                tran = conn.BeginTransaction();
                SqlCommand cmd = new SqlCommand(para.SqlString, conn, tran);
                cmd.ExecuteNonQuery();
                tran.Commit();

                conn.Close();
                para.ErrorString = "";

                return true;
            }
            catch (Exception ex)
            {
                tran.Rollback();
                if (conn.State == ConnectionState.Open) conn.Close();
                para.ErrorString = ex.Message;

                return false;
            }
        }

        public void DoWork()
        {
        }
    }
}

 

 

示例代码是VS2012+SQLServer 2008编写。

 

发布WCF与发布Web站点基本一样,只是要把整个编译的几个文件放到虚拟目录中:


 发布以后要注意在Windows防火墙中把访问的端口开放,否则只能在本机访问,其他机器访问不了。

 

 

 

  • WCFTest.rar (31.2 KB)
  • 描述: 本文示例代码
  • 下载次数: 15
  • 大小: 4.9 KB
0
0
分享到:
评论

相关推荐

    一步一步开发wcf ria Silverlight 企业级应用-来源聚拓互联

    6)WCF RIA Services V1.0 for Visual Studio 2010(Silverlight访问数据库Ria Wcf服务) 7)安装Northwind数据库。这个数据库可以从网上搜到。 另外,如需要发布后请到 聚拓互联订购支持wcf ria服务的asp.net4.0虚拟...

    Visual Studio 2010 C# 从精通到入门 全部29个章节源码

    学完本书源码之后,会对C#有一个全面、透彻的理解,并能用它来构建Windows Presentation Foundation(WPF)应用程序,访问Microsoft SQL Server 数据库,开发ASP.NET Web 应用程序以及创建和使用Windows ...

    Eallies OA: 综合应用WPF/WCF/WF/LINQ实现企业级软件-Dev-wow源码

    1、本程序在Windows 2003、SQL Server 2005、Visual Studio 2008环境下测试通过。 2、请将项目解压缩至某一目录下,如D:\Eallies下。 3、请附加数据库。 A) 请更改Eallies.OA\Database目录下的Attach.sql文件,将...

    ASP.NET3.5典型模块开发源代码

    第1章 登录验证模块 1 1.1 开发站点前的配置 1 1.1.1 创建Web站点 1 1.1.2 使用站点安全工具配置身份验证...28.4 SQL Server数据库缓存依赖 384 28.4.1 缓存依赖接口ICacheDependency 384 28.4.2 缓存依赖...

    SmartHotel360注册:SmartHotel360-注册(带有Windows容器的AKS)

    WCF连接到SQL Server数据库,并且Web App使用WCF服务。 您可以在本地运行网站和WCF,将它们部署到Azure App Service或将整个解决方案部署到Azure Kubernetes Services版本1.14.5(预览版)或支持Windows容器的最新...

    PetShop最新源代码合集(5.0、4、3版本合集)

    4.0和3.0没有解压出来,自行安装解压(需要SqlServer数据做连接或者在安装到数据库连接时直接拷贝出来) petshop5.0 基于.NET Framework 3.5 ------------ 使用LINQ to SQL改进数据访问层 PetShop.Model....

    Microsoft .NET Framework 3.5 Service Pack 1

    图形序列化工作可帮助开发人员生成将全部图形建模为数据协定的 Windows Communication Foundation (WCF) 服务。实体数据源为希望使用实体框架的 ASP.NET 应用程序构建者提供了传统的数据源体验。 LINQ to SQL 新增...

    ASP.NET3.5从入门到精通

    7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库关系图 7.3 ADO.NET 连接...

    ASP.NET Night Words

    15.1.1 sql server数据库访问 15.1.1 通用类 288 15.1.2 using关键字的用法 293 15.2 三层架构的定义及代码示例 294 15.3 三层架构的特点 309 15.4 对三层架构的一点扩充 309 15.5 总结 310 第16章 单元测试 ...

    ASP.NET 3.5 开发大全11-15

    7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库关系图 7.3 ADO.NET连接SQL...

    ASP.NET 3.5 开发大全

    7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库关系图 7.3 ADO.NET连接SQL...

    ASP.NET 3.5 开发大全1-5

    7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库关系图 7.3 ADO.NET连接SQL...

    ASP.NET 3.5 开发大全word课件

    7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库关系图 7.3 ADO.NET连接SQL...

    ASPNET35开发大全第一章

    7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库关系图 7.3 ADO.NET连接SQL...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    12.1.1 连接sql server compactedition数据库 463 12.1.2 同步数据 466 12.2 sql server内置的xml功能 472 12.3 sql server中的clr集成 474 12.3.1 决定使用t-sql还是vb 475 12.3.2 创建用户定义的类型 ...

    ASP.NET.4揭秘

    第20章 使用linq to sql访问数据库720 20.1 c#和vb.net的新特性720 20.1.1 理解自动属性721 20.1.2 理解初始化器721 20.1.3 理解类型推断723 20.1.4 理解匿名类型724 20.1.5 理解泛型724 20.1.6 理解lambda表达式726...

    通用Easyui开发框架源码(For Asp.NET)

    Easyui开发框架源码 源码描述: 一、功能介绍: 本系统实现的核心功能完全适合企业级开发 1、框架采用多层架构,... 1、开发环境为Visual Studio 2010及以上,数据库为SQL Server 2008R2,数据库文件在DB文件夹中。

Global site tag (gtag.js) - Google Analytics