using System;
using System.Data;
using System.Data.SqlClient;
namespace DataCtrl
{
/// <summary>
/// Summary description for Class1.
/// </summary>
///
public class DBClass
{
private string connStr="Server='.';database=haihui2006;uid=sa;pwd=;";
//-----------定义数据集----------------------------
private DataSet GlobleDataSet=new DataSet();
//-----------定义操作数据库 的对象--------------------------
SqlConnection conn=new SqlConnection();
SqlCommand cmd=new SqlCommand();
SqlDataAdapter myDataAdapter=new SqlDataAdapter();
SqlDataReader dr;
//-----------------------以上是定义的变量-------------------------
public DBClass()
{//构造函数,在这里付值---------------------
conn.ConnectionString=connStr;
cmd.Connection=conn;
cmd.CommandType=CommandType.Text;
}
//--------------创建数据表-这项功能作用不大,加到CreateDataSet直接创建数据集-然后用索引------
/*
public DataTable CreateDataTable(string SQLcmd,string TableName)
{//创建数据表
string connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DBName;
DataSet myDataSet=new DataSet();
OleDbConnection conn=new OleDbConnection(connStr);
OleDbDataAdapter myAdapater=new OleDbDataAdapter(SQLcmd,conn);
try
{
myAdapater.Fill(myDataSet,TableName);
//myAdapater.Fill(dataSet,TableName);
}
catch(Exception ee)
{
throw(ee);
}
return myDataSet.Tables[TableName];
}
*/
//-------------------------------------------------------------------------------
public bool IsRecorder(string SQLcmd)
{//判断是否有这条记录--------------------------
cmd.CommandText=SQLcmd;
conn.Open();
dr=cmd.ExecuteReader();
bool hasRecorder=dr.Read();
dr.Close();
conn.Close();
return hasRecorder;
}
//------------------------------------
public int GetMax(string SQLcmd)
{//获取记录的最大值--------------------------
cmd.CommandText=SQLcmd;
int MaxValue;
string strMax="0";
conn.Open();
dr=cmd.ExecuteReader();
if(dr.Read())
{
strMax=dr["Id"].ToString();//Convert.ToInt32(dr["Id"]);
//bool hasRecorder=dr.Read();
dr.Close();
conn.Close();
}
MaxValue=Convert.ToInt32(strMax);
//int MaxValue=0;
return MaxValue;
}
public Object FindMaxInDB(string table,string column)
{//找到列中最大值,返回最大值+1;
int max = 0;
string strMax = "0";
cmd.CommandText = "select max(" + column + ") from " + table;
try
{
conn.Open();
SqlDataReader myReader = cmd.ExecuteReader();
myReader.Read();
bool i = myReader.HasRows;
if( i )
{
if(!myReader.IsDBNull(0))
strMax = myReader.GetInt32(0).ToString();
}
max = int.Parse(strMax);
myReader.Close();
conn.Close();
}
catch(Exception ee)
{
//函数返回Object类型,装箱返回,然后拆箱。可传回异常结果或max
if(conn.State.ToString() == "Open")
conn.Close();
return ee;
}
if(conn.State.ToString() == "Open")
conn.Close();
return max+1;
}
public void UpDateDataBase2(string SQLcmd)
{//操作数据,只能单行操作--读,改,增,删------
cmd.CommandText=SQLcmd;
//---------------------------------
try
{
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch(Exception ee)
{
throw ee;
}
}
public Object UpDateDataBase(string SQLcmd)
{//操作数据,只能单行操作--增,删,改------
cmd.CommandText=SQLcmd;
//---------------------------------
try
{
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch(Exception ee)
{
//函数返回Object类型,装箱返回,然后拆箱。可传回异常结果或max
if(conn.State.ToString() == "Open")
conn.Close();
return ee;
}
if(conn.State.ToString() == "Open")
conn.Close();
return true;
}
public void CreateDataSet(string SQLcmd,string TableName)
{//创建数据集dataset,使用索引调用全局私有变量GlobleDataSet
cmd.CommandText=SQLcmd;
myDataAdapter.SelectCommand=cmd;
try
{
GlobleDataSet.Clear();
myDataAdapter.Fill(GlobleDataSet,TableName);
}
catch(Exception ee)
{
throw(ee);
}
}
public Object FillDataSet(string SQLcmd,string TableName)
{//创建数据集dataset,使用索引调用全局私有变量GlobleDataSet
cmd.CommandText=SQLcmd;
myDataAdapter.SelectCommand=cmd;
try
{
myDataAdapter.Fill(GlobleDataSet,TableName);
}
catch(Exception ee)
{
//函数返回Object类型,装箱返回,然后拆箱。可传回异常结果或max
return ee;
}
return true;
}
public void UpdateDataSet()
{//更新数据库,把数据集中的多行数据写如数据库
}
public Object UpdateDataSet(string TableName)
{//更新数据库,把数据集中的多行数据写如数据库
SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(myDataAdapter);
try
{
myDataAdapter.Update(GlobleDataSet,TableName);
}
catch(Exception e)
{
return e;
}
return true;
}
public DataSet dataSet
{//---------------索引-把GlobleDataSet这个数据集返回-----------
get
{
return GlobleDataSet;
}
set
{
GlobleDataSet=value;
}
}
public string strConn
{
//在做借书的新借图书信息时,要在这个抽象出来的类里搞怕它和那边耦合度太大
//所以传个连接过去在那边搞了
get
{
return connStr;
}
}
}
}