HYAppFrame数据库开发入门(ASP.NET Web Service)

本节主要讲解服务器端ASP.NET Web Service数据库配置和操作,客户端数据库操作。

HYAppFrame项目地址:https://sourceforge.net/u/chinahysoft/profile/

1.    服务器端数据库操作

HYAppFrame服务器端通过ASP.NET Web Service连接数据库。

数据库连接配置

在文件Web.config配置数据库,需设置数据库服务器地址Data Source、数据库名称Initial Catalog、访问帐号User Id、访问密码Password等。dbName不需修改。

<connectionStrings>
    <add name="dbName"
      connectionString="Data Source=localhost;Initial Catalog=hyappframe;Integrated Security=False;User Id=sa;Password=123456;"/>
</connectionStrings>

数据库操作

在文件MyFuncLib.cs中定义函数OpenDatabase(string connString),返回一个活动的数据库连接SqlConnection,代码如下:

public static SqlConnection OpenDatabase(string connString)
{
    SqlConnection conn = new SqlConnection();
    try
    {
        conn.ConnectionString = connString;
        conn.Open();
    }
    catch (Exception ex)
    {
        Log("Open database error:" + ex.Message + "\r\n" + ex.StackTrace);
    }
    return conn;
}

数据库查询、更新操作

在文件master.asmx.cs中定义函数ExecQueryBySql(string sql, DataTable paras),将sql查询结果以DataTable形式返回;定义函数ExecNoneQueryBySql(string sql, DataTable paras),返回int型,0表示未影响任何记录,-1表示sql执行错误,>0表示返回受影响记录的条数。

public int ExecNoneQueryBySql(string sql, DataTable paras)
{
    if (!IsLogin())
        return -100;
    SqlConnection conn = MyFuncLib.OpenDatabase(MyFuncLib.connString);
    int result = 0;
    try
    {
        sql = DES.Decrypt(sql, MyFuncLib.passwordKey);
        SqlCommand comd = new SqlCommand();
        comd.CommandTimeout = 1800;
        comd.Connection = conn;
        comd.CommandText = sql;
        comd.Parameters.Clear();
        if (paras != null)
        {
            foreach (DataRow row in paras.Rows)
            {
                comd.Parameters.AddWithValue(MyFuncLib.Dtv(row, "name", string.Empty), MyFuncLib.Dtv(row, "value", string.Empty));
            }
        }
        result = comd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        MyFuncLib.Log(ex.Message + "\r\n" + ex.StackTrace);
        result = -1;
    }
    finally
    {
        MyFuncLib.CloseDatabase(conn);
    }
    return result;
}

为了提高Web Service安全性,启用了Session,要使用方法必须先通过身份验证,同时也对sql语句进行DES加密。具体代码如下:

[WebMethod(EnableSession = true)]
public DataTable ExecQueryByNamed(string queryName, DataTable paras)

2. 客户端数据库操作

客户端使用Web Service提供的函数对数据库进行查询、更新。

直接调用Web Service数据库操作方法,需构造查询所需的参数。

DataTable sqlParams = new DataTable("sqlParametersDataTable");
sqlParams.Columns.Add(new DataColumn("name", System.Type.GetType("System.String")));
sqlParams.Columns.Add(new DataColumn("value", System.Type.GetType("System.String")));
DataRow dRow;
foreach (ListItem item in paras)
{
    dRow = sqlParams.NewRow();
    dRow["name"] = item.Name;
    dRow["value"] = item.Value;
    sqlParams.Rows.Add(dRow);
}
dt = MyFuncLib.WS.ExecQueryBySql(DES.Encrypt(sql, MyFuncLib.PasswordKey), sqlParams);

为了调用简便,在客户端MyFuncLib.cs中封装函数DBCommandExecQueryBySql(string sql, ArrayList paras)、DBCommandExecScalarBySql(string sql, ArrayList paras)、DBCommandExecNoneQueryBySql(string sql, ArrayList paras)

不带参数的查询

string sql = "select 1";
string str = MyFuncLib.DBCommandExecScalarBySql(sql, null);

带参数的查询

string sql = "select 1 from yourtable where ID_ = @id";
ArrayList sqlParams = new ArrayList();
sqlParams.Add(new ListItem("@id", 1));
string str = MyFuncLib.DBCommandExecScalarBySql(sql, sqlParams);

封装后,数据库查询代码变得非常简洁。

时间: 2024-12-19 20:46:38

HYAppFrame数据库开发入门(ASP.NET Web Service)的相关文章

Win Form + ASP.NET Web Service 文件上传下载--HYAppFrame

本章节主要讲解HYAppFrame服务器端如何ASP.NET Web Service实现文件(含大文件)上传,WinForm客户端如何下载文件. 1    服务器端文件上传 1.1 上传文件 函数FileUpload(stringfileFullPath, byte[] file)用于上传文件,生成文件前检查文件路径所在文件夹是否存在,不存在则首先创建文件夹. [WebMethod(EnableSession = true,Description = "上传文件")] public i

微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战

微软实战训练营 上海交大(A)实验班.(X)重点班 内部课程资料 链接:http://pan.baidu.com/s/1jGsTjq2 密码:0wmf <微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战>微软实战训练营 上海交大(A)实验班.(X)重点班 .(E)英语口语班http://54peixun.com/MSTrainingCamp/index.html 微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web S

使用Myeclipse 8.5开发基于JAX-WS的Web service实例

使用Myeclipse 8.5开发基于JAX-WS的Web service实例  本文为Web service 开发入门篇,主要介绍在Myeclipse 8.5环境下开发Web service的服务程序和客户端程序的基本流程.  在Weblogic 10.3.4 中部署Web service服务.   开发环境如下:  JAVA IDE: Myeclipse 8.5 开发Web service服务程序,需要了解以下相关内容, WSDL, SOAP, XML.这些是组成Web service 的基

Silverlight 2 (beta1)数据操作(1)——使用ASP.NET Web Service进行数据CRUD操作(上)

目录 导言 软件需求 在SQL 2005中创建数据库 在Visual Studio 2008中创建 Silverlight 2 (beta1)工程 在ASP.NET工程里创建Web Service 在Silverlight 2 (beta1)工程中引用ASP.NET Web Service 添加数据部分 查询数据部分 修改数据部分 删除数据部分 整合程序 结语 例子下载 导言 Silverlight 2支持JSON.Web Service.WCF以及Sockets等新特性对数据CRUD操作,这个

Part 17 Consuming ASP NET Web Service in AngularJS using $http

Here is what we want to do1. Create an ASP.NET Web service. This web service retrieves the data from SQL Server database table, returns it in JSON formt.2. Call the web service using AngularJS and display employee data on the web page Step 1 : Create

Greenplum 分布式数据库开发入门到精通(架构、部署、管理、开发和调优)【课程分享】

Greenplum 分布式数据库开发入门到精通(架构.部署.管理.开发和调优) 对这个课程有兴趣的朋友,可以加我qq2059055336和我联系 课程大纲 1 Greenplum架构 什么是Greenplum Greenplum体系结构 Greenplum高可用性架构 2 安装Greenplum 配置环境 安装并初始化GPDB系统 启停数据库 配置GP系统 3 分布式数据库存储 数据是如何存储的 分布策略 4 GBDB查询处理 查询命令的执行 SQL查询处理机制 并行查询计划 5 角色权限及客户

在 Visual Studio 2010 中创建 ASP.Net Web Service

第一步:创建一个“ASP.Net Empty Web Application”项目 第二步:在项目中添加“Web Service”新项目 第一步之后,Visual Studio 2010会创建一个仅含一个站点配制文件(Web.config)的空站点,其余的什么也没有. 我们在Visual Studio 2010的Solution Explorer中,选中当前的这个project,添加新项目(右键菜单:Add --> New Item),选择“Web Service”这种类型: 看到这里读者应该就

ASP.NET Web Service中使用Session 及 Session丢失解决方法 续

原文:ASP.NET Web Service中使用Session 及 Session丢失解决方法 续 1.关于Session丢失问题的说明汇总,参考这里 2.在Web Servcie中使用Session,需要对Web Method做如下处理 [WebMethod(EnableSession = true)]public void usingSession(){    Session["Name"] = "Name";} 如果不加EnableSession = tru

Silverlight 2 (beta1)数据操作(2)——使用ASP.NET Web Service进行数据CRUD操作(下)

前台界面 后台代码 //按钮事件 void saveButton_Click(object sender, RoutedEventArgs e) { if (userName.Text.Trim() == string.Empty) { errMessage.Foreground = new SolidColorBrush(Colors.Red); errMessage.Text = "请输入用户名称!"; errMessage.Visibility = Visibility.Visi