ASP.NET DataBase
//数据库操作
public class DataBase
{
private SqlConnection conn;//数据库连接对象 #region 打开数据库连接
private void Open()
{
if (conn == null)
{
conn = new SqlConnection();
//conn.ConnectionString = ConfigurationSettings.AppSettings["connString"].ToString();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["connString"].ToString();
conn.Open();
}
else
{
if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
}
}
#endregion #region 关闭数据库连接
private void Close()
{
if (conn != null && conn.State == System.Data.ConnectionState.Open)
{
conn.Close();
}
}
#endregion #region 释放连接资源
public void Dispose()
{
if (conn != null)
{
conn.Dispose();
conn = null;
}
}
#endregion #region 传入参数并转换为SqlParameter类型
/// <summary>
/// 转换参数
/// </summary>
/// <param name="ParamName">存储过程名称或命令文本</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, Object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
} /// <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>
private SqlParameter MakeParam(string ParamName, SqlDbType DbType, int Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
if (Size>)
{
param = new SqlParameter(ParamName, DbType, Size);
}
else
{
param = new SqlParameter(ParamName, DbType);
}
param.Direction = Direction;
if (!(param.Direction == ParameterDirection.Output && Value == null))
{
param.Value = Value;
} return param;
}
#endregion #region 执行参数命令文本(无数据库中数据返回) /// <summary>
/// 执行命令
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <returns></returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到成功执行的返回值
return (int)cmd.Parameters["ReturnValue"].Value;
} /// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name="procName">命令文本</param>
/// <returns></returns>
public int RunProc(string procName)
{
this.Open();
SqlCommand cmd = new SqlCommand(procName, conn);
int num = cmd.ExecuteNonQuery();
this.Close();
return num;
} #endregion #region 执行参数命令文本(有返回值) /// <summary>
/// 执行查询命令文本,并且返回DataSet数据集
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <param name="tbName">数据表名称</param>
/// <returns></returns>
public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
{
SqlDataAdapter dap = CreateDataAdapter(procName, prams);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
return ds;
} /// <summary>
/// 执行命令文本,并且返回DataSet数据集
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="tbName">数据表名称</param>
/// <returns>DataSet</returns>
public DataSet RunProcReturn(string procName, string tbName)
{
SqlDataAdapter dap = CreateDataAdapter(procName, null);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
return ds;
} #endregion #region 将命令文本添加到SqlDataAdapter /// <summary>
/// 创建一个SqlDataAdapter对象以此来执行命令文本
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <returns></returns>
private SqlDataAdapter CreateDataAdapter(string procName, SqlParameter[] prams)
{
this.Open();
SqlDataAdapter dap = new SqlDataAdapter(procName, conn);
dap.SelectCommand.CommandType = CommandType.Text;// 执行类型:命令文本
if (prams != null)
{
foreach (SqlParameter param in prams)
{
dap.SelectCommand.Parameters.Add(param);// 为查询语句插入参数
}
} //加入返回值
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, ,
ParameterDirection.ReturnValue, false, , ,
String.Empty, DataRowVersion.Default, null)); return dap;
} #endregion #region 将命令文本添加到SqlCommand /// <summary>
/// 创建一个SqlCommand对象以此来执行命令文本
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams"命令文本所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
this.Open();
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.Text;// 执行类型:命令文本 //一次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter param in prams)
{
cmd.Parameters.Add(param);
}
} //加入返回参数
cmd.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, ,
ParameterDirection.ReturnValue, false, , ,
string.Empty, DataRowVersion.Default, null)); return cmd;
} #endregion
}
ASP.NET DataBase的更多相关文章
- asp: AJAX Database
<% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %> <!DOCTYPE html PUBLIC " ...
- ASP与ASP.NET转换Session数据桥的应用
背景: 现有公司的产品OA是采用ASP早先的技术开发,需要与目前最新的ASP.NET产品进行数据交互的应用.现有的ASP应用程序往往采用“ASP Sessions”,这是一种经典的ASP内置模式,即允 ...
- 注入问题0x00
1.sqlmap遇到MySQL注入可以成功getshell,但是,遇到sqlserver注入未成功getshell. 2.xp_cmdshell 如何 getshell(1433未对外开放). 解决方 ...
- SQL2005之SA提权总结
首先,看看xp_cmdshell存在不,不存在的话先恢复下. Exec sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_confi ...
- Server.MapPath()获取本机绝对路径
1. Server.MapPath("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\ 2.Server.MapPath("./&qu ...
- OpenStack(0) - Table of Contents
1. Keystone OpenStack Identity Service2. Starting OpenStack Image Service3. Starting OpenStack Compu ...
- Caching Tutorial
for Web Authors and Webmasters This is an informational document. Although technical in nature, it a ...
- 这是一篇SQL注入文章
目录 注入原理: 1.寻找注入点的方式或注入的地方可能包括. 2.注入点判断方法. 3.注入分类. 数字型: 字符型: 搜索型: XX型(也叫其他型): 4.注入提交方式. 5.注入攻击类型与方式. ...
- ASP.NET Core (Database First)
CREATE DATABASE [EFCore_dbfirst] GO USE [EFCore_dbfirst] GO CREATE TABLE [Blog] ( [BlogId] int NOT N ...
随机推荐
- 如何设置eclipse不同的workspace共享配置
在很多的项目中,每个项目使用一个workspace,结果每新建一个workspace重新配置一下,但是配置的东西都是一样的,烦死了,有什么好办法可以共享一下配置呢? 总结一下,复制工作空间配置步骤如下 ...
- 【视频分享】Liger UI实战集智建筑project管理系统配商业代码(打印报表、角色式权限管理)
QQ 2059055336 课程讲师:集思博智 课程分类:.net 适合人群:中级 课时数量:23课时 用到技术:Liger UI框架.AJAX.JSON数据格式的序列化与反序列化.角色的交叉权限管理 ...
- python urlopen SSL: CERTIFICATE_VERIFY_FAILED
1.使用ssl创建未经验证的上下文,在urlopen中传入上下文参数 import sslimport urllib2 context = ssl._create_unverified_context ...
- 关于查询排序DTO的封装
DTO: public class SortDto { //排序方式 private String orderType; //排序字段 private String orderField; publi ...
- 为apache安装mod_wsgi的时候出现-fpic的问题
1.为了在apache里跑python项目,需要安装模块mod_wsgi 2.但是由于yum只支持python2.6,所以通过yum install mod_wsgi方式安装的mod_wsgi是pyt ...
- poj 3131 Cubic Eight-Puzzle 双向广搜 Hash判重
挺不错的题目,很锻炼代码能力和调试能力~ 题意:初始格子状态固定,给你移动后格子的状态,问最少需要多少步能到达,如果步数大于30,输出-1. 由于单向搜索状态太多,搜到二十几就会爆了,所以应该想到双向 ...
- [leetcode]Insertion Sort List @ Python
原题地址:http://oj.leetcode.com/problems/insertion-sort-list/ 题意:对链表进行插入排序. 解题思路:首先来对插入排序有一个直观的认识,来自维基百科 ...
- jQuery的一个关键函数
jQuery.extend = jQuery.fn.extend = function() { // copy reference to target object var target = argu ...
- DIV+CSS自适应窗口高度
<html> <head> <title>DIV+CSS自适应窗口高度</title> <style type="text/css&qu ...
- (转)NGUI类关系图