WCF初见之SQL数据库的增删改查

简介:

1.首先要连接数据库,自然要有数据库啦,创建一个数据库表Login,并插入一个数据:

复制代码
--创建数据库表login
CREATE TABLE Login        
(
    UName VARCHAR(20) PRIMARY KEY NOT NULL,
    UPassword  VARCHAR(30) NOT NULL,
    UState INT DEFAULT'0' NOT NULL
)


--查询Login表
SELECT * FROM Login

SELECT UName,UPassword FROM Login

--插入数据
INSERT INTO Login(UName,UPassword) VALUES('张三','123456')
复制代码

2.下面就是WCF服务的创建了,直接创建一个WCF服务应用程序,项目名称为“ODataBase”,如下图:

3.创建服务契约和创建服务:

(1)IDataBase.cs (创建服务契约):

复制代码
using System.Data;
using System.ServiceModel;

namespace ODataBase
{
    [ServiceContract]
    public interface IService1
    {
        //新增数据
        [OperationContract]
        int InsertLogin(string strName,string strPwd);
       //删除数据
        [OperationContract]
        int DeleteLogin(string strName);
        //修改数据
        [OperationContract]
        int UpdataLogin(string strName, string strPwd);
        //查询数据
        [OperationContract]
        DataSet SelectLogin(); 
    }
}
复制代码

(2)DataBase.svc (创建服务)

复制代码
using System.ServiceModel;
using System.Data;
using System.Data.SqlClient;
using System;
namespace ODataBase
{
    public class DataBase : IService1
    {
     //连接数据库
        SqlConnection strCon = new SqlConnection(@"server=IT01\SQLEXPRESS;uid=sa;pwd=yc12369;database=yctest");


        //添加数据
        public int  InsertLogin(string strName,string  strPwd)
        {
            try
            {
                strCon.Open();
                string strSql = "INSERT INTO Login(UName,UPassword) VALUES(@strName,@strPwd)";
                SqlCommand cmd = new SqlCommand(strSql,strCon);
                SqlParameter parn = new SqlParameter("@strName",strName);
                cmd.Parameters.Add(parn);
                SqlParameter parp = new SqlParameter("@strPwd",strPwd);
                cmd.Parameters.Add(parp);
                //result接受受影响的行数,也就是说大于0的话表示添加成功
                int result = cmd.ExecuteNonQuery();
                cmd.Dispose();
                return result;
            }catch(Exception ex)
            {
                throw ex;
            }finally
            {
                strCon.Close();
            }
        }

        //删除数据
        public int DeleteLogin(string strName)
        {
            try
            { 
                strCon.Open();
                string strSql = "DELETE FROM Login WHERE UName = @strName";
                SqlCommand cmd = new SqlCommand(strSql,strCon);
                SqlParameter parn = new SqlParameter("@strName",strName);
                cmd.Parameters.Add(parn);
                int result = cmd.ExecuteNonQuery();
                cmd.Dispose();
                return result;
            }catch(Exception ex)
            {
                throw ex;
            }finally
            {
                strCon.Close();
            }
        }


        //修改数据
        public int UpdataLogin(string strName,string strPwd)
        {
            try
            { 
                strCon.Open();
                string strSql = "UPDATE  Login  SET UPassWord=@strPwd WHERE UName =@strName";
                SqlCommand cmd = new SqlCommand(strSql,strCon);
                SqlParameter parn = new SqlParameter("@strName",strName);
                cmd.Parameters.Add(parn);
                SqlParameter parp = new SqlParameter("@strPwd",strPwd);
                cmd.Parameters.Add(parp);
                int result = cmd.ExecuteNonQuery();
                cmd.Dispose();
                return result;
            }catch(Exception ex)
            {
                throw ex;
            }finally
            {
                strCon.Close();
            }
        }
        //查询数据
        public DataSet SelectLogin()
        {
            try
            {
                strCon.Open();
                string strSql = "SELECT UName,UPassword FROM Login ";
                DataSet ds = new DataSet();
                SqlDataAdapter s = new SqlDataAdapter(strSql, strCon);
                s.Fill(ds);
                return ds;
            }catch(Exception ex)
            {
                throw ex;
            }finally
            {
                strCon.Close();
            }
        }

        
    }
}
复制代码

 

 

4.然后新建一个名为Web4DataBase的Web客户端(用于测试),先引用创建的WCF服务,具体过程见WCF初见之HelloWorld,然后进行Web端的代码编写:

(1)Test4DataBase.aspx(Web界面代码)

复制代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test4DataBase.aspx.cs" Inherits="Web4DataBase.Test4DataBase" %>

<!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>SQL数据库操作测试</title>
</head>
<body>
    <form id="DataBaseFrom" runat="server">
  <h2>SQL数据库操作测试</h2>
  <br />
  用户名:<asp:TextBox ID="txbName" runat="server"></asp:TextBox>
  <br /><br />
  密     码:<asp:TextBox ID="txbPwd" runat="server" 
        TextMode="Password"></asp:TextBox>
  <br /><br />
  <asp:Button  ID="btn_InsertLogin" runat="server" Text="新增数据" 
        onclick="btn_InsertLogin_Click"/>
  <asp:Button  ID="btn_DeleteLogin" runat="server" Text="删除数据" 
        onclick="btn_DeleteLogin_Click"/>
  <asp:Button  ID="btn_UpdataLogin" runat="server" Text="更新数据" 
        onclick="btn_UpdataLogin_Click"/>
  <asp:Button  ID="btn_ResetLogin" runat="server" Text="重置数据" 
        onclick="btn_ResetLogin_Click"/>
  <br /><br />
  <asp:GridView ID="gvLogin" runat="server" AutoGenerateColumns="False">
   <Columns>
            <asp:BoundField DataField="UName" HeaderText="用户名" />
            <asp:BoundField DataField="UPassword" HeaderText="密码" />
        </Columns>
  </asp:GridView>
    </form>
</body>
</html>
复制代码

(2)Test4DataBase.aspx.cs(功能实现代码)

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Web4DataBase
{
    public partial class Test4DataBase : System.Web.UI.Page
    {
        service.Service1Client host = new service.Service1Client();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) { BindData(); };
        }

        //绑定数据源
        private void BindData()
        {
            gvLogin.DataSource = host.SelectLogin();
            gvLogin.DataBind();
        }

        //新增数据
        protected void btn_InsertLogin_Click(object sender, EventArgs e)
        {
            string strName = txbName.Text.Trim();
            string strPwd = txbPwd.Text.Trim();
            host.InsertLogin(strName,strPwd);
            BindData();
        }

        //删除数据
        protected void btn_DeleteLogin_Click(object sender, EventArgs e)
        {
            string strName = txbName.Text.Trim();
            host.DeleteLogin(strName);
            BindData();
        }

        //更新数据
        protected void btn_UpdataLogin_Click(object sender, EventArgs e)
        {
            string strName = txbName.Text.Trim();
            string strPwd = txbPwd.Text.Trim();
            host.UpdataLogin(strName, strPwd);
            BindData();
        }

        // 重置数据
        protected void btn_ResetLogin_Click(object sender, EventArgs e)
        {
            txbName.Text = "";
            txbPwd.Text = "";
        }

    }
}
复制代码

5.效果图如下:






本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/archive/2012/07/10/2584703.html,如需转载请自行联系原作者
目录
相关文章
|
SQL 机器学习/深度学习 人工智能
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
本文系统性地阐述了自然语言转SQL(NL2SQL) 技术如何让非技术背景的业务分析师实现数据自助查询,从而提升数据驱动决策的效率与准确性。
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1994 152
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1393 156
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
1824 213
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
998 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
594 6
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
836 8
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
1625 8
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
619 5