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,如需转载请自行联系原作者
目录
相关文章
|
12天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
51 10
|
29天前
|
SQL 存储 BI
【软件设计师备考 专题 】数据库语言(SQL)
【软件设计师备考 专题 】数据库语言(SQL)
90 0
|
1月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
18 1
|
12天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
74 6
|
1天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
1天前
|
SQL 缓存 数据库
sql 数据库优化
SQL数据库优化是一个复杂且关键的过程,涉及多个层面的技术和策略。以下是一些主要的优化建议: 查询语句优化: 避免全表扫描:在查询时,尽量使用索引来减少全表扫描,提高查询速度。 使用合适的子查询方式:子查询可能降低查询效率,但可以通过优化子查询的结构或使用连接(JOIN)替代子查询来提高性能。 简化查询语句:避免不必要的复杂查询,尽量使SQL语句简单明了。 使用EXISTS替代IN:在查询数据是否存在时,使用EXISTS通常比IN更快。 索引优化: 建立合适的索引:对于经常查询的列,如主键和外键,应创建相应的索引。同时,考虑使用覆盖索引来进一步提高性能。 避免过多的索引:虽然索引可以提高查询
|
8天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
8天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
33 3
|
11天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
41 0
|
12天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例