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.效果圖如下:

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM