访问数据库:

View Code using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;/// <summary>
///DataBase 的摘要说明
/// </summary>
public class DataBase
{//私有变量,数据库连接protected SqlConnection Connection;protected string ConnectionString;//构造函数public DataBase(){ConnectionString = ConfigurationSettings.AppSettings["strCon"];}//保护方法,打开数据库连接private void Open(){//判断数据库是否连接if(Connection == null){//不存在,新建并打开Connection = new SqlConnection(ConnectionString);Connection.Open();}else{//存在,判断是否处于关闭状态if(Connection.State.Equals(ConnectionState.Closed))Connection.Open();//连接处于关闭状态,重新打开
        }}//公有方法,关闭数据库连接public void Close(){if (Connection.State.Equals(ConnectionState.Open)){Connection.Close();//连接处于打开状态,关闭连接
        }}//公有方法,释放资源public void Dispose(){if (Connection != null){Connection.Dispose();Connection = null;}}//私有方法,获得一个用来调用存储过程的SqlCommand//输入://      ProcName - 存储过程名//      Params   - 用来调用存储过程的参数表public SqlCommand CreatCommand(string ProcName, SqlParameter[] Prams){//打开数据库连接
        Open();//创建一个命令对象SqlCommand Cmd = new SqlCommand(ProcName, Connection);//指定命令对象的类型为存储过程Cmd.CommandType = CommandType.StoredProcedure;// 依次把参数传入命令文本if (Prams != null){foreach (SqlParameter Parameter in Prams)Cmd.Parameters.Add(Parameter);}return Cmd;}/// <summary>/// 初始化参数值/// </summary>/// <param name="ParamName">存储过程名称或命令文本</param>/// <param name="DbType">参数类型</param>/// <param name="Size">参数大小</param>/// <param name="Direction">参数方向</param>/// <param name="Value">参数值</param>/// <returns>新的 parameter 对象</returns>public SqlParameter MakeParam(string ParamName,SqlDbType DbType, Int32 Size,ParameterDirection Direction,object Value){SqlParameter Param;if(Size>0)Param = new SqlParameter(ParamName,DbType,Size);else Param = new SqlParameter(ParamName,DbType);Param.Direction = Direction;if(!(Direction == ParameterDirection.Output && Value == null))Param.Value = Value;return Param;}//公有方法,实例化一个用于调用存储过程的输入参数//输入://     ParamName - 参数名称//     DbType   -  参数类型//     Size     - 参数大小 //     Value     - 值public SqlParameter MakeInParam(string ParamName, SqlDbType DbTpye, int Size, object Value){return MakeParam(ParamName, DbTpye, Size, ParameterDirection.Input, Value);}//公有方法,调用存储过程(带参数)//输入://      ProcName - 存储过程名//      Params   - 用来调用存储过程的参数表//输出://      对Update、Insert、Delete操作返回影响到的行数,其他情况为-1public int RunProc(string ProcName, SqlParameter[] Params){int Count = -1;SqlCommand Cmd = CreatCommand(ProcName, Params);Count = Cmd.ExecuteNonQuery();Close();return Count;}//公有方法,调用存储过程(不带参数)//输入://            ProcName存储过程名//输出://            将执行结果以DataSet返回  public DataSet GetDataSet(string ProcName){Open();SqlDataAdapter da = new SqlDataAdapter(ProcName, Connection);DataSet ds = new DataSet();da.Fill(ds);Close();return ds;}//公有方法,调用存储过程(带参数)//输入://            ProcName - 存储过程名//      Params     - 存储过程需要的参数//输出://            将执行结果以SqlDataReader返回//注意:使用后主意调用SqlDataReader.Close()方法public SqlDataReader RunProcGetReader(string ProcName, SqlParameter[] Params){SqlCommand Cmd = CreatCommand(ProcName, Params);return Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);}
}

实体类以及增删改查方法:

View Code using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;/// <summary>
///Users 的摘要说明
/// </summary>
public class Users
{#region 私有成员private string _userID;private string _userPwd;private string _userName;#endregion 私有成员#region 属性public string UserID{set{this._userID = value;}get{return this._userID;}}public string UserPwd{set{this._userPwd = value;}get{return this._userPwd;}}public string UserName{set{this._userName = value;}get{return this._userName;}}#endregion 属性#region 方法//向Users表中添加用户信息(采用存储过程)//输出://      插入成功:返回True;//      插入失败:返回False;public bool InsertByProc(){SqlParameter[] Params = new SqlParameter[3];DataBase mydb = new DataBase();//用户编号Params[0] = mydb.MakeInParam("@UserID", SqlDbType.VarChar, 50, UserID);//用户姓名Params[1] = mydb.MakeInParam("@UserName", SqlDbType.VarChar, 50, UserName);//用户密码Params[2] = mydb.MakeInParam("@UserPwd", SqlDbType.VarChar, 64, UserPwd); int Count = -1;Count = mydb.RunProc("Proc_UsersAdd", Params);if (Count > 0)return true;else return false;}//更新用户//输入://      XUserID - 用户编号;//输出://      更新成功:返回True;//      更新失败:返回False;public bool UpdateByProc(string XUserID){SqlParameter[] Params = new SqlParameter[2];DataBase mydb = new DataBase();Params[0] = mydb.MakeInParam("@UserID", SqlDbType.VarChar, 50, XUserID);               //用户编号           Params[1] = mydb.MakeInParam("@UserName", SqlDbType.VarChar, 50, UserName);int Count = -1;Count = mydb.RunProc("Proc_UsersModify", Params);if (Count > 0)return true;else return false;//用户姓名
    }//删除用户//输入://      XUserID - 用户编号;//输出://      删除成功:返回True;//      删除失败:返回False;public bool DeleteByProc(string XUserID){//定义参数类型SqlParameter[] Params = new SqlParameter[1];DataBase mydb = new DataBase();//用户编号Params[0] = mydb.MakeInParam("@UserID", SqlDbType.VarChar, 50, XUserID);                         int Count = -1;Count = mydb.RunProc("Proc_UsersDelete", Params);if (Count > 0)return true;else return false;}//查询用户//查询所用用户//不需要参数public DataSet QueryUsers(){DataBase mydb = new DataBase();return mydb.GetDataSet("Proc_UsersList");}//根据UserID判断该用户是否存在//输入://      XUserID - 用户编号;        //输出://      用户存在:返回True;//      用户不在:返回False;public bool CheckUser(string XUserID){SqlParameter[] Params = new SqlParameter[1];DataBase DB = new DataBase();Params[0] = DB.MakeInParam("@UserID", SqlDbType.VarChar, 50, XUserID);                    SqlDataReader DR = DB.RunProcGetReader("Proc_UsersDetail", Params);if (!DR.Read()){return false;}else{return true;}}#endregion 方法
}

前台页面设计:

View Code <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %><!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>无标题页</title><script type="text/javascript"></script><style type="text/css">.style1{font-size: small;}</style>
</head>
<body><form id="form1" runat="server"><div><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%"><tr><td style="height:4px;" colspan="2"></td></tr><tr><td  style="width: 4px;  background: url(../Images/line.gif) repeat-y;"> </td>   <td  valign="top" align="left" width="960px"><h4>&gt;&gt;用户管理</h4><asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="8" OnRowCancelingEdit="GridView1_RowCancelingEdit"  OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" DataKeyNames="UserID" Font-Size="13px" Width="58%" SkinID="gvSkin" CellPadding="4" ForeColor="#333333" GridLines="None"><FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /><RowStyle BackColor="#FFFBD6" ForeColor="#333333" /><Columns>    <asp:TemplateField><ItemTemplate><asp:CheckBox ID="chkSelected" runat="server" Checked="False" Visible="True" /></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="ID"><ItemTemplate><%# Container.DataItemIndex+1 %></ItemTemplate></asp:TemplateField>                                        <asp:TemplateField HeaderText="编号">                           <ItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>'></asp:Label></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="姓名"><EditItemTemplate><asp:TextBox ID="tbxName" Width="70px" runat="server" Text='<%# Eval("userName") %>'></asp:TextBox></EditItemTemplate><ItemTemplate><asp:Label ID="Label2" runat="server"><%# Eval("userName") %></asp:Label></ItemTemplate></asp:TemplateField><asp:CommandField ShowEditButton="True" HeaderText="编辑" /><asp:CommandField ShowDeleteButton="True" HeaderText="删除" /></Columns><PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /><SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /><HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /><AlternatingRowStyle BackColor="White" /></asp:GridView><asp:Label ID="LabelPageInfo" runat="server" style="font-size: small"></asp:Label><br /><asp:CheckBox ID="chkSelectAll" runat="server" AutoPostBack="true" Text="全选" Width="54px" OnCheckedChanged="chkSelectAll_CheckedChanged" style="font-size: small" />&nbsp;<asp:ImageButton ID="ImageButtonDelete" runat="server" ImageUrl="~/Images/删除}.gif" OnClick="ImageButtonDelete_Click"></asp:ImageButton><br /></td></tr><tr><td  style="width: 4px;  background: url(../Images/line.gif) repeat-y;"> &nbsp;</td>   <td  valign="top" align="left" width="960px"><table cellpadding="0" cellspacing="0" border="1"  bordercolor="#cccccc" style="border-collapse:collapse; width: 44%;" frame="below"><tr><td bgcolor="#f6dda4" style="text-align:right;width:100%;" colspan="2"><div class="title" align="left"><h4>添加用户</h4></div></td></tr><tr><td bgcolor="#f6dda4" style="text-align:right;"><span class="style1">编号</span>:</td><td ><div align="left"><asp:TextBox id="txtUserID"  runat="server" MaxLength="20"></asp:TextBox></div></td></tr><tr><td bgcolor="#f6dda4" style="text-align:right;"><span class="style1">姓名</span>:</td><td ><div align="left"><asp:TextBox id="txtUserName" runat="server" MaxLength="20"></asp:TextBox></div></td></tr><tr><td bgcolor="#f6dda4" style="text-align:right;"><span class="style1">密码</span>:</td><td ><div align="left"><asp:TextBox id="txtUserPwd"  runat="server" MaxLength="20" TextMode="Password" Width="128px"></asp:TextBox></div></td></tr><tr><td>&nbsp;</td><td valign="top" >&nbsp;<asp:ImageButton ID="imgBtnSave" runat="server" ImageUrl="~/Images/Save.GIF" OnClick="imgBtnSave_Click" />&nbsp; &nbsp; <asp:ImageButton ID="imgBtnReturn" runat="server" CausesValidation="false" ImageUrl="~/Images/Return.GIF" οnclick="imgBtnReturn_Click" /><asp:Label ID="lblMessage" runat="server" ForeColor=red></asp:Label>&nbsp; &nbsp; &nbsp;</td></tr></table></td></tr></table>  </div></form>
</body>
</html>

后台代码:

View Code using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page
{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){GridViewBind();}}public void GridViewBind(){//创建Users类对象userUsers user = new Users();//使用使用Users类QueryUsers方法查询所有用户信息DataSet myds = user.QueryUsers();//为GridView控件指定数据源GridView1.DataSource = myds;//设置控件的主键字段值GridView1.DataKeyNames = new string[] { "ID" };//从数据库中绑定数据
        GridView1.DataBind();LabelPageInfo.Text = "你所在的位置:当前(第" + (GridView1.PageIndex + 1).ToString() + "页 共" + GridView1.PageCount.ToString() + "页)";}//GridView控件RowDeleting事件protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){//取出要删除记录的主键值string userID = GridView1.DataKeys[e.RowIndex].Values[0].ToString();//创建Users类的对象userUsers user = new Users();//根据主键使用DeleteByProc方法删除用户if (user.DeleteByProc(userID)){Response.Write("<script>alert('删除成功!');location='Default.aspx'</script>");   }else{Response.Write("<script>alert('删除失败!');location='Default.aspx'</script>");}GridViewBind();//重新绑定数据
    }protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e){//GridView编辑项索引等于单击行的索引GridView1.EditIndex = e.NewEditIndex;GridViewBind();}//GridView控件RowUpdating事件protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e){//取出记录的主键值string userID = GridView1.DataKeys[e.RowIndex].Values[0].ToString();//创建Users类对象userUsers user = new Users();user.UserName = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("tbxName")).Text;//使用Users类UpdateByProc方法修改用户信息,该方法中主要是调用Proc_UsersAdd存储过程if (user.UpdateByProc(userID)){//绑定数据库中数据
            GridViewBind();//修改成功给予提示Response.Write("<script>alert('修改成功!');location='Default.aspx'</script>");}else{Response.Write("<script>alert('修改失败!');location='Default.aspx'</script>");}//取消编辑状态GridView1.EditIndex = -1;//重新绑定下数据
        GridViewBind();}protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e){GridView1.EditIndex = -1;GridViewBind();}protected void ImageButtonDelete_Click(object sender, ImageClickEventArgs e){for (int i = 0; i < this.GridView1.Rows.Count-1; i++){bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;if (isChecked){string userID = ((Label)GridView1.Rows[i].FindControl("Label1")).Text;//创建Users类对象userUsers user = new Users();//根据主键使用DeleteByProc方法删除用户if (user.DeleteByProc(userID)){Response.Write("<script language=javascript>alert('删除成功!');location='Default.aspx'</script>");}else{Response.Write("<script language=javascript>alert('" + userID + "删除失败!');location='Default.aspx'</script>");}}}GridViewBind();}protected void chkSelectAll_CheckedChanged(object sender, EventArgs e){for (int i = 0; i < GridView1.Rows.Count; i++){((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked = this.chkSelectAll.Checked;}}protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){GridView1.PageIndex = e.NewPageIndex;GridViewBind();}protected void imgBtnSave_Click(object sender, ImageClickEventArgs e){if (Page.IsValid){Users user = new Users();user.UserID = txtUserID.Text.Trim();if (!user.CheckUser(user.UserID)){user.UserName = txtUserName.Text;string PwdMD5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(txtUserPwd.Text.Trim(), "MD5").ToString();user.UserPwd = PwdMD5;if (user.InsertByProc()){lblMessage.Text = "成功插入该用户信息!";Server.Transfer("Default.aspx");}else{lblMessage.Text = "添加用户失败!";}}else{lblMessage.Text = "数据库中存在具有该编号的用户,请重新输入!";}}}protected void imgBtnReturn_Click(object sender, ImageClickEventArgs e){Server.Transfer("Default.aspx");  }
}

存储过程:

View Code CREATE PROCEDURE [dbo].[Proc_UsersAdd](@UserID         [varchar](50), @UserName         [varchar](50),@UserPwd         [varchar](64))
AS INSERT INTO [db2].[dbo].[tb_user] (ID, [userName],[userPwd])
VALUES ( @UserID,     @UserName,@UserPwd)CREATE PROCEDURE [dbo].[Proc_UsersDelete](@UserID        [varchar](50))
AS DELETE [db2].[dbo].[tb_user]
WHERE ( [ID]     = @UserID)CREATE PROCEDURE [dbo].[Proc_UsersList]
AS SELECT      [db2].[dbo].[tb_user].[ID],         [db2].[dbo].[tb_user].[userName]                            FROM          [db2].[dbo].[tb_user]ALTER PROCEDURE [dbo].[Proc_UsersModify](@UserID         [varchar](50),     @UserName                  [varchar](50))
AS UPDATE [db2].[dbo].[tb_user] SET          [userName]    = @UserNameWHERE ( [ID]     = @UserID)

转载于:https://www.cnblogs.com/652769324qq/archive/2013/03/19/2968820.html

SqlParameter参数方式操作数据库(存储过程)相关推荐

  1. uniCloud云函数中通过传统方式操作数据库的-增删改查

    云函数 可以看做java或者php,作为后端服务 cloudfunctions/myCloud/index.js exports.main = async (event, context) => ...

  2. python协程池操作mysql_python_协程方式操作数据库

    #!/usr/bin/python3 # -*- coding: utf-8 -*- import requests import gevent import pymysql from gevent ...

  3. dbcontext mysql_九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

    一.创建一个DataContext普通类继承DbContext 安装程序集:Pomelo.EntityFrameworkCore.MySql 二.配置连接字符串(MySql/SqlServer都可以) ...

  4. 数据库SQL Server2012笔记(八)——Statement与PreparedStatement的区别,JDBC方式操作数据库...

    1.Statement与PreparedStatement的区别 1)都可用于  把sql语句从java程序中发送到制定数据库,并执行sql语句. 2)区别 直接使用Statement,驱动程序一般不 ...

  5. python 用mysqldb方式操作数据库

    # -*- coding: utf-8 -*- from User import User import time, MySQLdb#连接 conn = MySQLdb.connect(host='l ...

  6. oracle表的历史数据转储过程,C#连接Oracle数据库通过存储过程操作数据库 - cuizm的专栏 - CSDN博客...

    C#连接Oracle数据库通过存储过程操作数据库 收藏 此文于2011-06-07被推荐到CSDN首页 此文于2011-06-08被推荐到CSDN首页 如何被推荐? 之前笔者一直用C#连接SQL Se ...

  7. MFC,ADO方式实现数据库操作

    参考: MSDN数据访问编程 (MFC/ATL): https://msdn.microsoft.com/zh-cn/library/kd4ck1tt.aspx?f=255&MSPPError ...

  8. SQL DBHelp.cs 操作数据库的底层类

    /// <summary> /// 操作数据库存储过程类 /// </summary> public class ExecProc { //取出数据库连接字符串 //publi ...

  9. Python 操作数据库(1)

    在关系数据库中,数据库表是一系列二维数组的集合,用来代表和储存数据对象之间的关系.它由纵向的列和横向的行组成,例如一个有关作者信息的名为 authors 的表中,每个列包含的是所有作者的某个特定类型的 ...

最新文章

  1. c#chart背景透明_C# 二
  2. linux下PHP7环境搭建
  3. 龙芯下中标系统C语言查找设备号_龙芯:主控进驻国产激光打印机并适配麒麟OS...
  4. android实现手机拍照以及图片预览功能_手机系统将有A/B分区?Android 11这些变化你关注过吗...
  5. svn php改客户端密码_记录VisualSVNServer配置在线密码修改功能
  6. 行为设计模式 - 解释器设计模式
  7. tar 命令详解 / xz 命令
  8. Python3初级知识整理
  9. OFFICE技术讲座:制表键(TAB)对段落布局的影响
  10. android第三方集成埋点,Android集成mPass 埋点遇到的问题
  11. 帆软 FineReport 绘制填报报表
  12. SpringBoot2通过CXF框架整合Webservice
  13. 【亲测可用】彻底解决Google谷歌地球启动无法连接到登录服务器、无法启动问题
  14. 用户绑定手机号的思考
  15. 2022年数学建模C题优秀论文
  16. 第十五届全国大学生智能汽车竞赛安徽赛区获奖名单
  17. ROS节点运行管理launch文件
  18. Visual Studio Code 代理设置
  19. Error setting null for parameter
  20. Notepad++设置记录

热门文章

  1. 区块链为什么这么热?有这么大热度的原因是什么
  2. 如何编写一个可升级的智能合约
  3. web前端开发最佳实践_学习前端Web开发的最佳方法
  4. brad wu_一百万归功于Brad Traversy
  5. javascript原理_JavaScript程序包管理器工作原理简介
  6. Hadoop集群搭建(五:Hadoop HA集群模式的安装)
  7. 新建异常并处理java_java – 动态创建异常的工厂模式
  8. 1048 Find Coins(二分法解法)
  9. 数据库管理系统的组成和结构
  10. ZJU-java进阶笔记 第七周(异常处理)