王朝网络
分享
 
 
 

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

王朝学院·作者佚名  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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有