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 ...
随机推荐
- 【六】注入框架RoboGuice使用:(Singletons And ContextSingletons)
上一篇我们简单的介绍了一下RoboGuice的使用([五]注入框架RoboGuice使用:(Your First POJO Injection)),今天我们来看下单例以及上下文单例(ContextSi ...
- Java输入输出处理技术1
1.保存用户输入到文件 从键盘读入一行字符,写到文件output.txt中去. package io; import java.io.*; public class MyFileOutput { pu ...
- OpenCV学习(16) 细化算法(4)
本章我们学习Rosenfeld细化算法,参考资料:http://yunpan.cn/QGRjHbkLBzCrn 在开始学习算法之前,我们先看下连通分量,以及4连通性,8连通性的概念: http://w ...
- 原创D3D几何实例化的DEMO
CUBE的几何实例化DEMO 鼠标右键按下并拖动 旋转视角WSAD 前后左右RF ...
- 第一章 Java代码执行流程
说明:本文主要参考自<分布式Java应用:基础与实践> 1.Java代码执行流程 第一步:*.java-->*.class(编译期) 第二步:从*.class文件将其中的内容加载到内 ...
- 巧妙利用函数的惰性载入提高javascript 代码性能
在 javascript 代码中,因为各浏览器之间的行为的差异,我们经常会在函数中包含了大量的 if 语句,以检查浏览器特性,解决不同浏览器的兼容问题. 例如,我们最常见的为 dom 节点添加事件的函 ...
- org.dom4j.DocumentException: unknown protocol: d Nested exception: unknown
最近用dom4j写了一个修改XML文件的小例子,抛出了如下异常: org.dom4j.DocumentException: unknown protocol: d Nested exception: ...
- telnet 退出命令
telnet xxx port ctrl + ] telnet > quit ctrl + w 是清除命令 转自: http://wangyifeng.blog.51cto.com/214490 ...
- eclipse全屏模式
- JAVA 读取计算机中相关信息
java读取 计算机 cup号 读取版本号 显卡 .. . . ........ .. . . . package com.swt.common.util; import java.io.Buffer ...