我的连结数据库的类

发表于:2007-06-30来源:作者:点击数: 标签:
using System; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace admin.CommonClass { /// summary /// 连结 数据库 的类--OpenDB /// /summary public class OpenDB { //获得连结数据库的字符串 private string str

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace admin.CommonClass
{
 /// <summary>
 /// 连结数据库的类--OpenDB
 /// </summary>
 public class OpenDB
 {
  //获得连结数据库的字符串
  private string strJet  = ConfigurationSettings.AppSettings["strConn"];

  public OpenDB()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

  #region 获得DataSet
  /// <summary>
  /// 获得一个DataSet,格式:GetDataSet(查询字段,查询表,条件字段,条件符号,条件值)
  /// </summary>  
  /// <param name="strZDName"></param>
  /// <param name="strTableName"></param>
  /// <param name="strWhereValue"></param>
  /// <returns></returns>
 
  public DataSet GetDataSet(string strZDName,string strTableName,string strWhereValue)
  {   
   
   //创建连结数据库的对象
   SqlConnection myconn = new SqlConnection(strJet);   

   //创建Adapter对象
   SqlDataAdapter myAdapter = new SqlDataAdapter("sp_GetDataSet",myconn);

   //指明为存储过程
   myAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;

   //给存储过程的strZD变量赋值,即指明查询字段.
   myAdapter.SelectCommand.Parameters.Add("@ZDName",SqlDbType.Char).Value = strZDName;

   //给存储过程的FromWhere变量赋值,即指明查询表.
   myAdapter.SelectCommand.Parameters.Add("@TableName",SqlDbType.Char).Value = strTableName;
   
   //给存储过程的WhereValue变量赋值,即指明查询条件.
   myAdapter.SelectCommand.Parameters.Add("@WhereValue",SqlDbType.Char).Value = strWhereValue;
 

   //创建DataSet对象
   DataSet ds = new DataSet();

   //填充数据
   myAdapter.Fill(ds,"strFromWhere");

   //返回一个DataSet
   return ds;
  }
  #endregion

  #region 插入数据
  /// <summary>
  /// 插入数据,格式:InsertData(表名,字段名,字段值)
  /// </summary>
  /// <param name="TableName"></param>
  /// <param name="ZDName"></param>
  /// <param name="ZDValue"></param>
  public void InsertData(string strTableName,string strZDName,string strZDValue)
  {
   //创建连结数据库的对象
   SqlConnection myconn = new SqlConnection(strJet);

   //打开myconn
   myconn.Open();
  
   //创建SqlCommand对象
   SqlCommand mycmd = new SqlCommand("InsertData",myconn);
   
   //指明是存储过程
   mycmd.CommandType = CommandType.StoredProcedure;

   //添加存储过程参数
   mycmd.Parameters.Add("@TableName",SqlDbType.Char);
   mycmd.Parameters.Add("@ZDName",SqlDbType.Char);
   mycmd.Parameters.Add("@ZDValue",SqlDbType.Char);

   //给存储过程变量赋值
   mycmd.Parameters["@TableName"].Value = strTableName;
   mycmd.Parameters["@ZDName"].Value = strZDName;
   mycmd.Parameters["@ZDValue"].Value = strZDValue;
   
   //执行命令操作
   mycmd.ExecuteNonQuery();  
  }
  #endregion

  #region 修改数据
  /// <summary>
  /// 修改数据,格式:UpdateData(表名,字段赋值,条件语句)
  /// </summary>
  /// <param name="strTableName"></param>
  /// <param name="strZDName"></param>
  /// <param name="strZDValue"></param>
  public void UpdateData(string strTableName,string strZDName,string strWhereValue)
  {
   //创建连结数据库的对象
   SqlConnection myconn = new SqlConnection(strJet);

   //打开myconn
   myconn.Open();
  
   //创建SqlCommand对象
   SqlCommand mycmd = new SqlCommand("UpdateData",myconn);
   
   //指明是存储过程
   mycmd.CommandType = CommandType.StoredProcedure;

   //添加存储过程参数
   mycmd.Parameters.Add("@TableName",SqlDbType.Char);
   mycmd.Parameters.Add("@ZDName",SqlDbType.Char);
   mycmd.Parameters.Add("@WhereValue",SqlDbType.Char);

   //给存储过程变量赋值
   mycmd.Parameters["@TableName"].Value = strTableName;
   mycmd.Parameters["@ZDName"].Value = strZDName;
   mycmd.Parameters["@WhereValue"].Value = strWhereValue;
   
   //执行命令操作
   mycmd.ExecuteNonQuery();  
  }
  #endregion

  #region 删除数据
  /// <summary>
  /// 删除数据,格式:DeleteData(表名,删除条件)
  /// </summary>
  /// <param name="strTableName"></param>
  /// <param name="strWhereValue"></param>
  public void DeleteData(string strTableName,string strWhereValue)
  {
   //创建连结数据库的对象
   SqlConnection myconn = new SqlConnection(strJet);

   //打开myconn
   myconn.Open();
  
   //创建SqlCommand对象
   SqlCommand mycmd = new SqlCommand("DeleteData",myconn);
   
   //指明是存储过程
   mycmd.CommandType = CommandType.StoredProcedure;

   //添加存储过程参数
   mycmd.Parameters.Add("@TableName",SqlDbType.Char);   
   mycmd.Parameters.Add("@WhereValue",SqlDbType.Char);

   //给存储过程变量赋值
   mycmd.Parameters["@TableName"].Value = strTableName;
   mycmd.Parameters["@WhereValue"].Value = strWhereValue;   
   
   //执行命令操作
   mycmd.ExecuteNonQuery();
  }
  #endregion
 }
}


存储过程如下:
1.插入数据的存储过程
CREATE PROCEDURE [InsertToTable] 
 (
 --@TableName为要插入的表名
 @TableName     [char](50),
 --@ZDName为字段名
 @ZDName     [char](255),
 --@ZDValue为字段的值
 @ZDValue     [char](255)
 )

AS
exec(@# INSERT INTO @# + @TableName + @#(@# + @ZDName + @#) VALUES( @# + @ZDValue + @#)@# )
GO

2.修改数据的存储过程
CREATE PROCEDURE [UpdateData] 
 (
 --@TableName为要修改记录的表名
 @TableName     [char](50),
 --@ZDName为字段名
 @ZDName     [char](255),
 --@WhereValue为字段的值
 @WhereValue     [char](255)
 )

AS
exec(@# UPDATE @# + @TableName + @#SET @# + @ZDName +@#Where @# + @WhereValue )
GO

3.删除数据的存储过程
CREATE PROCEDURE [DeleteData] 
 (
 --@TableName为要删除数据的表名
 @TableName     [char](50),
 --@WhereValue为删除条件
 @WhereValue    [char](255)
 )

AS
exec(@# DElETE FROM @# + @TableName + @# Where @# + @WhereValue )
GO

原文转自:http://www.ltesting.net