using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Diagnostics;
public class SqlClass
{
protected SqlConnection Connection;
protected string connectionstring;
public SqlClass()
{
connectionstring = "Server=(local);Database=LightA;uid=sa;pwd=;";
Connection = new SqlConnection(connectionstring);
}
public SqlClass(string connstring)
{
connectionstring = connstring;
Connection = new SqlConnection(connectionstring);
}
/// <summary>
/// 得到SQL连接
/// </summary>
public SqlConnection GetConnection()
{
if (Connection.State != ConnectionState.Open)
Connection.Open();
return Connection;
}
public void CloseConnection()
{
if (Connection.State != ConnectionState.Closed)
Connection.Close();
}
/*执行返回结果和不返回结果的存储过程方法*/
/// <summary>
/// 根据存储过程名称和参数生成对应的SQL命令对象
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
private SqlCommand BuilderQueryCommand(string storedProcName, SqlParameter[] parameters)
{
SqlCommand command = new SqlCommand();
command.Connection = Connection;
command.CommandText = storedProcName.Trim();
command.CommandType = CommandType.StoredProcedure;
if (parameters != null)
{
foreach (SqlParameter p in parameters)
{
command.Parameters.Add(p);
}
}
return command;
}
/// <summary>
/// 返回结果的存储过程
/// </summary>
public SqlDataReader GetDataReaderByProc(string storedProcName, SqlParameter[] parameters)
{
SqlDataReader reader;
SqlCommand cmd = BuilderQueryCommand(storedProcName, parameters);
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
/// <summary>
/// 不返回结果的存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">参数值</param>
/// <returns></returns>
public int GetEffect(string storedProcName, SqlParameter[] parameters)
{
int result = 0;
try
{
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
SqlTransaction trans = Connection.BeginTransaction();
try
{
SqlCommand cmd = BuilderQueryCommand(storedProcName, parameters);
cmd.Transaction = trans;
result = cmd.ExecuteNonQuery();
trans.Commit();
Connection.Close();
return result;
}
catch (Exception ex)
{
if (trans != null)
{
trans.Rollback();
return result;
}
throw ex;
}
finally
{
if (trans != null)
{
trans.Dispose();
}
Connection.Close();
}
}
catch (Exception ex1)
{
Debug.WriteLine(ex1.ToString());
return 0;
//throw new Exception(ex1.Message);
}
}
/// <summary>
/// 返回dateSet
/// </summary>
/// <param name="ProcName"></param>
/// <param name="parameters"></param>
/// <param name="tableName"></param>
/// <returns></returns>
public DataSet GetDataSetByProc(string ProcName, SqlParameter[] parameters, string tableName)
{
try
{
DataSet ds = new DataSet();
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
SqlDataAdapter myDa = new SqlDataAdapter();
myDa.SelectCommand = BuilderQueryCommand(ProcName, parameters);
myDa.Fill(ds, tableName);
return ds;
}
catch
{
return null;
}
finally
{
Connection.Close();
}
}
/// <summary>
/// 自定义分页
/// </summary>
/// <param name="ProcName">存储过程名</param>
/// <param name="parameters">参数名</param>
/// <param name="start">起始页</param>
/// <param name="maxRecord">记录数</param>
/// <param name="tableName">表名</param>
/// <returns></returns>
public DataSet GetDataSetByProc(string ProcName, SqlParameter[] parameters, int start, int maxRecord, string tableName)
{
try
{
DataSet ds = new DataSet();
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
Connection.Open();
SqlDataAdapter myDa = new SqlDataAdapter();
myDa.SelectCommand = BuilderQueryCommand(ProcName, parameters);
myDa.Fill(ds, start, maxRecord, tableName);
return ds;
}
catch
{
Connection.Close();
return null;
}
finally
{
Connection.Close();
}
}
/// <summary>
/// 返回object类型 比如首行首列
/// </summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="parameters">参数列表</param>
/// <returns></returns>
public object GetObjectByProc(string storedProcName, SqlParameter[] parameters)
{
object result = null;
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
// SqlTransaction trans = Connection.BeginTransaction();
try
{
SqlCommand cmd = BuilderQueryCommand(storedProcName, parameters);
// cmd.Transaction = trans;
result = cmd.ExecuteScalar();
// trans.Commit();
Connection.Close();
return result;
}
catch
{
// trans.Rollback();
return result;
}
finally
{
Connection.Close();
}
}
/// <summary>
/// 通过ID号操作某条记录,比如删除ID号的记录
/// </summary>
/// <param name="ProcName">存储过程名</param>
/// <param name="id">值</param>
/// <param name="paraname">参数名如:@ID</param>
/// <returns></returns>
public int RunProcByID(string ProcName, int id, string paraname)
{
try
{
SqlParameter[] p ={ new SqlParameter(paraname, SqlDbType.Int) };
p[0].Value = id;
return GetEffect(ProcName, p);
}
catch
{
Connection.Close();
return 0;
}
finally
{
Connection.Close();
}
}
/// <summary>
/// 修改ID号为keyValue的记录的ParaDieldName字段的值为FiledValue
/// </summary>
/// <param name="ProcName">相信过程名</param>
/// <param name="keyValue">ID号的值</param>
/// <param name="paraKeyName">ID号对应的字段名</param>
/// <param name="paraFieldName">要修改的字段名</param>
/// <param name="FieldValue">要修改字段的值</param>
/// <param name="length">字段的长度</param>
/// <returns></returns>
public int UpdateByID(string ProcName, int keyValue, string paraKeyName, string paraFieldName, string FieldValue, int length)
{
try
{
SqlParameter[] p ={ new SqlParameter(paraFieldName,SqlDbType.VarChar,length),
new SqlParameter(paraFieldName, SqlDbType.Int)
};
p[0].Value = FieldValue;
p[1].Value = keyValue;
return GetEffect(ProcName, p);
}
catch
{
Connection.Close();
return 0;
}
finally
{
Connection.Close();
}
}
#region 执行SQL,返回DataSet
/// <summary>
/// 执行SQL语句返回DataSet
/// </summary>
public DataSet GetDataSet(string strSql)
{
try
{
DataSet ds = new DataSet();
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
SqlDataAdapter myDa = new SqlDataAdapter();
myDa.SelectCommand = new SqlCommand(strSql, Connection);
myDa.Fill(ds);
return ds;
}
catch
{
return null;
}
finally
{
Connection.Close();
}
}
#endregion
#region 执行SQL,返回影响行数
/// <summary>
/// 执行SQL语句返回影响行数
/// </summary>
public int RunSql(string strSql)
{
int effect = 0;
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
SqlTransaction trans = Connection.BeginTransaction();
try
{
SqlCommand cmd = new SqlCommand(strSql, Connection);
cmd.Transaction = trans;
effect = cmd.ExecuteNonQuery();
trans.Commit();
return effect;
}
catch
{
trans.Rollback();
Connection.Close();
return effect;
}
finally
{
Connection.Close();
}
}
#endregion
#region 执行SQL语句返回SqlDataReader
/// <summary>
/// 执行SQL语句返回SqlDataReader
/// </summary>
public SqlDataReader GetDataReader(string strsql)
{
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
try
{
SqlCommand cmd = new SqlCommand(strsql, Connection);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
Connection.Close();
return null;
}
}
#endregion
#region 执行SQL,返回首行首列
/// <summary>
/// 执行SQL语句返回object
/// </summary>
public object GetObject(string strsql)
{
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
object obj = null;
try
{
SqlCommand cmd = new SqlCommand(strsql, Connection);
obj = cmd.ExecuteScalar();
Connection.Close();
return obj;
}
catch
{
Connection.Close();
return null;
}
finally
{
Connection.Close();
}
}
#endregion
#region 执行SQL,得到DataTable
public DataTable GetDataTable(string strSql)
{
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter();
try
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql;
cmd.Connection = GetConnection();
sda.SelectCommand = cmd;
sda.Fill(dt);
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
CloseConnection();
}
finally
{
CloseConnection();
}
return dt;
}
#endregion
}
使用举例:
SqlClass sql = new SqlClass();
SqlDataReader dr = sql.GetDataReader("select * from");
if (dr != null)
{
while (dr.Read())
{
if (dr["RecvTime"] != DBNull.Value)
{
//......
}
}
dr.Close();
dr.Dispose();
}
分享到:
相关推荐
asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net数据库操作类asp.net...
使用ADO.NET操作数据库 显示数据库中的内容 (listbox dropdownlist datalist datagrid 及显示数据库中的图片) 使用ASP.NET操作数据库 断开式数据库访问 使用数据网格处理数据 常用ASP.NET模块 ASP.NET网络数据库...
C#(VB.net)数据库访问操作类库 你知道,一些类库把常用的操作封装起来,以后可以直接调用,就节省了普通开发人员的大量精力. 对于CN 大多数公司都是开发MIS系统 说白了就是数据库系统 使用数据访问类库,必将节省大量...
总的来说,.NET提供了多种方式来操作数据库,无论是继续使用传统的ADO还是切换到更现代的ADO.NET,都能满足开发者的需求。理解这些操作方式有助于提升开发效率,尤其是在需要维护旧项目或整合不同技术栈时。
在"ASP.NET操作数据库实例"这个主题中,我们将深入探讨如何使用ASP.NET与SQL数据库进行交互。 首先,ASP.NET提供了多种方式来操作数据库,如ADO.NET、Entity Framework、Linq to SQL等。其中,ADO.NET是.NET ...
ADO.NET 是 .NET Framework 中用于访问...总之,ADO.NET提供了一套全面的工具和类库,使得开发人员能够高效地处理数据库操作,同时也充分利用了XML的灵活性和互操作性,使其成为.NET框架下进行数据库编程的重要选择。
因为工作至今接触的数据库还算比较全面,每次搭建新项目开发数据库选择后,都要编写整理对应的.NET与数据库交互的DBHelper助手类,时间一长,便将各类型数据库助手类整理出来共享,在提升大家开发效率的同时,减少...
### ASP.NET 2.0数据库操作类SQLHELP详解 在.NET框架中,ASP.NET 2.0是一个重要的版本,它提供了丰富的功能来构建动态Web应用。其中,数据库操作是Web开发中的关键环节,为了简化这一过程,开发人员经常创建自定义...
ADO.NET 连接数据库详解 ADO.NET 是 Microsoft .NET Framework 的一部分,提供了访问数据库的能力。使用 ADO.NET,可以连接各种类型的数据库,如 Access、SQL Server、Oracle 等。在本文中,我们将详细介绍如何使用...
【VB.NET与数据库】这篇PPT教程主要涵盖了VB.NET的基础知识以及如何利用VB.NET进行数据库应用程序的开发。VB.NET是Microsoft公司2002年发布的一种面向对象的编程语言,它是在Visual Basic的基础上,结合.NET框架发展...
asp.net 连接数据库及数据库详细操作代码,请下载!
"phd.net实时数据库取数类"是指利用.NET框架与PHD(Process History Database,过程历史数据库)进行交互,以获取或操作实时和历史数据的编程示例。PHD是由霍尼韦尔公司开发的一款强大的实时数据库系统,广泛应用于...
EF允许开发者使用面向对象的方式来操作数据库,无需关注底层SQL细节。EF有多种工作模式,如Code First、Model First、Database First,可以根据项目需求选择合适的方式。 三、C#数据库操作实例 以下是一个简单的...
《ASP.NET 4.5 数据库入门经典》第三版是一本专为初学者设计的教程,旨在帮助读者快速掌握ASP.NET 4.5框架下的数据库编程技术。这本书以通俗易懂的方式介绍了诸多关键概念和实践技巧,使得读者即使在没有深入接触过...
.net操作数据库的封装
总之,ASP.NET通用数据库访问组件是ASP.NET开发中的一个强大工具,它实现了跨数据库的统一访问,简化了数据库操作,提升了项目的可扩展性和可维护性。通过深入理解和熟练使用这样的组件,开发者能够更高效地构建和...
精通C#与.NET 4.0数据库开发 2 OF 2 --------------------------------------------- ...全书共六篇,包括:C# 4.0语言基础、开发应用程序、SQL Server 2008基础、ADO.NET操作数据库、LINQ查询开发、项目实战。
这个驱动程序允许开发者在C#、VB.NET或其他.NET支持的语言中编写代码,以执行SQL查询、操作数据以及管理MySQL数据库。在本场景中,我们有两个关键文件:`mysql.data.msi`和`连接字符串.txt`。 `mysql.data.msi`是...