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