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.效果图如下:
WCF初见之SQL数据库的增删改查的更多相关文章
- Android SQL语句实现数据库的增删改查
本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- 【转载】通过JDBC对MySQL数据库的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Android下利用SQLite数据库实现增删改查
1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3: sqlite3 数据库 4 接下来就可以进行数据库的sql语法 ...
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...
- 使用java对sql server进行增删改查
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- 开源工具DbUtils的使用(数据库的增删改查)
开源工具DbUtils的使用(数据库的增删改查) 一.DbUtils简介: DBUtils是apache下的一个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果 ...
随机推荐
- InstallShield安装包在Win7下权限问题的解决方案 (转载)
转载:http://blog.csdn.net/wuzhengqing1/article/details/6570149 转载:http://blog.csdn.net/brikoff/article ...
- fastjson常用方法
fastjson是一款alibaba公司开发的json工具包.json经常被使用在数据传输方面,因此特意对它的一些常用方法做备注,欢迎看客在评论区补充或指出问题. 首先定义一个实体类,用于我们进行对象 ...
- Oracle错误——ORA-12704:字符集不匹配
错误 在查询使用coalesce把字符串进行转换时,报错ORA-12704:字符集不匹配 如下图 解决方法 在网上找了很多方法,有使用Translate转换的:有使用to_char()的,经过测试不符 ...
- linux内核中宏container_of是干什么的?
Linux Kernel Version 4.14 1. container_of是干什么的? 已知一个结构体中某个成员的首指针,那么就可以通过宏container_of来获得此结构体的首指针 2 先 ...
- HDU 4632 Palindrome subsequence & FJUT3681 回文子序列种类数(回文子序列个数/回文子序列种数 容斥 + 区间DP)题解
题意1:问你一个串有几个不连续子序列(相同字母不同位置视为两个) 题意2:问你一个串有几种不连续子序列(相同字母不同位置视为一个,空串视为一个子序列) 思路1:由容斥可知当两个边界字母相同时 dp[i ...
- Why there is two completely different version of Reverse for List and IEnumerable?
https://stackoverflow.com/questions/12390971/why-there-is-two-completely-different-version-of-revers ...
- Asp.Net 之 DropDownList的使用
这里不细说,直接上案例 <td style="width: 30px;" align="right"> 年月: </td> <td ...
- linux 进阶命令笔记(12月26日)
1. df 指令 作用:查看磁盘空间 用法: #df -h -h 表示以可读性较高的形式展示大小 2.free 指令 作用:查看内存使用情况 语法:#free -m -m表 ...
- python接口测试模版
"""Test case implementation""" import sys import functools import diff ...
- 点击返回上一页 wx.navigateTo不管用了
做跳转的时候,发现想返回上一页,但是这个上一页又是tab上的页面,返回不了怎么办呢 wx.navigateTo({ url: '../search/search', }) 解决方法: wx.reL ...