自己写的一套处理数据库的方法

王朝学院·作者佚名  2009-12-20  
宽屏版  字体: |||超大  

class COperateAcc

{

private SqlConnection conn = null;//连接数据库

private SqlCommand comm = null;//操作数据库sql

private SqlDataAdapter ada = null;//填充dataset

private SqlDataReader reader = null;//读取数据库表中的值

//构造函数

//初始化连接数据库

public COperateAcc()

{

try

{

DBCon dbcon = new DBCon();

conn = dbcon.getConn();

}

catch (Exception e)

{

throw e;

}

finally

{

close();

}

}

//读完数据库值关闭所有连接

//通过判断看所有连接是否关闭,没关闭的情况关闭

public void close()

{

if (reader != null)

{

reader.Close();

}

if (conn.State == ConnectionState.Open)

{

conn.Close();

}

}

//功能:查询sql语句

public SqlDataReader executeReader(string str_SqlString)

{

try

{

if (conn.State == ConnectionState.Open)

{

conn.Close();

}

comm = new SqlCommand();

comm.CommandText = str_SqlString;

comm.Connection = conn;

conn.Open();

reader = comm.ExecuteReader(CommandBehavior.CloseConnection);

}

catch (Exception e)

{

throw e;

}

return reader;

}

//功能:获得分页的行数

public int getPageRecord(string str_SqlString)

{

int count;

try

{

comm = new SqlCommand();

comm.CommandText = str_SqlString;

comm.Connection = conn;

conn.Open();

count = (int)comm.ExecuteScalar();

}

catch (Exception e)

{

throw e;

}

finally

{

close();

}

return count;

}

//功能:把从数据库表中得到的数据保存到客户端的一张表中

//返回:dataset 已一张表的形式保存到dataset

//参数:str_SqlString 查询的sql语句

public DataSet getDataSet(string str_SqlString)

{

DataSet ds = new DataSet();

try

{

ada = new SqlDataAdapter(str_SqlString, conn);

ada.Fill(ds);

}

catch (Exception e)

{

throw e;

}

finally

{

close();

}

return ds;

}

//功能:把从数据库表中得到的数据保存到客户端的一张表中

//返回:datatable 已一张表的形式保存到datatable

//参数:str_SqlString 查询的sql语句

public DataTable getDataTable(string str_SqlString)

{

DataTable dt = new DataTable();

try

{

ada = new SqlDataAdapter(str_SqlString, conn);

ada.Fill(dt);

}

catch (Exception e)

{

throw e;

}

finally

{

close();

}

return dt;

}

//功能:操作数据库中的表 添加,删除,更新

//返回:int 受影响的行数总数。

//参数:str_SqlString sql语句

public int executeSql(string str_SqlString)

{

int int_Num = 0;

try

{

comm = new SqlCommand();

comm.CommandText = str_SqlString;

comm.Connection = conn;

conn.Open();

int_Num = comm.ExecuteNonQuery();

}

catch (Exception e)

{

throw e;

}

finally

{

close();

}

return int_Num;

}

//功能:生成数据库中最大的唯一编号(挂失表等,总共19位 str_Szf+日期+四位数字)

//返回:string 最大值

//参数:@par1:str_Szf 用户自定义字符串 (前两位为用户自己规定+后五位位用户登录时的单位编号)

// :@par2:str_Id 数据库唯一编号字段名

// :@par3:str_TableName 数据库表名

public string getMaxID()

{

string str_MaxNum = "";

try

{

string sql = "select max(OId) from OrderRegister where OId like '%' ";

reader = this.executeReader(sql);

reader.Read();

if (reader[0].ToString().Equals(""))

{

str_MaxNum = this.getDateZh(this.getDate()) + "01";

}

else

{

if (reader[0].ToString().Substring(0, 8).Equals(this.getDateZh(this.getDate())))

{

str_MaxNum = this.getDateZh(this.getDate()) + Convert.ToString((Convert.ToInt32(reader[0].ToString().Substring(8, 2)) + 1)).PadLeft(2, '0');

}

else

{

str_MaxNum = this.getDateZh(this.getDate()) + "01";

}

}

}

catch (Exception e)

{

throw e;

}

finally

{

close();

}

return str_MaxNum;

}

//得到当天日期(年+月+日)

public string getDate()

{

string date = Convert.ToString(DateTime.Now).Substring(0, Convert.ToString(DateTime.Now).IndexOf(' '));

return date;

}

//转换日期形式

public string getDateZh(string str_DateValue)

{

string str_DValue;

if (str_DateValue.Length == 8)//八位 例如2008-1-1

{

str_DValue = str_DateValue.Substring(0, 4) + "0" + str_DateValue.Substring(5, 1) + "0" + str_DateValue.Substring(7, 1);

}

else if (Convert.ToInt32(str_DateValue.Length) == 9)//九位 分别为:2008-11-6,2008-2-12

{

if (str_DateValue.Substring(6, 1) == "-")

{

str_DValue = str_DateValue.Substring(0, 4) + "0" + str_DateValue.Substring(5, 1) + str_DateValue.Substring(7, 2);

}

else

{

str_DValue = str_DateValue.Substring(0, 4) + str_DateValue.Substring(5, 2) + "0" + str_DateValue.Substring(8, 1);

}

}

else//十位 例如:2008-11-23

{

str_DValue = str_DateValue.Substring(0, 4) + str_DateValue.Substring(5, 2) + str_DateValue.Substring(8, 2);

}

return str_DValue;

}

}

如果是access数据库 将SqlConnection SqlCommand 等换成 OleDbConnection OleDbCommand 就可以了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangliuyilovexi/archive/2009/12/17/5027382.aspx

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有