我的数据访问函数库的源代码(三)——返回结构数组
时间:2022-04-27
本文章向大家介绍我的数据访问函数库的源代码(三)——返回结构数组,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
/* 2008 4 25 更新 */
我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。
第三部分:返回结构
数组,这个是专门针对网页来设计的。就是在网页上更方便的显示一组数据。
//新增加的部分,返回结构数组用于绑定控件
#region 函数实现 — — RunSqlStructBaseTitle
/// <summary>
/// 运行SQl语句返回结构数组BaseTitle
/// </summary>
/// <param name="SQL">查询语句。比如select myName from tableName</param>
/// <param name="SQLForCount">用于统计记录数的SQL语句。如果传入数字的话,则直接使用数字作为记录数。</param>
/// <param name="TitleCount">标题的字符数,一个汉字按照两个字符计算。传入“0”则表示不截取标题。</param>
/// <param name="DateFormat">时间格式。比如“yyyy-MM-dd HH:mm:ss dddd”</param>
/// <returns>返回BaseTitle结构的数组。URL,标题,时间,人气</returns>
public BaseTitle[] RunSqlStructBaseTitle(string SQL,string SQLForCount,int TitleCount,string DateFormat,int IntroCount)
{
string strRowCount = RunSqlGetID(SQLForCount);
if (strRowCount == null)
return null;
int DataCount = Int32.Parse(strRowCount);
if (DataCount <)
return null;
return RunSqlStructBT(SQL,DataCount,TitleCount,DateFormat,IntroCount);
}
#endregion
#region 函数实现 — — RunSqlStructBaseTitle
/// <summary>
/// 运行SQl语句返回结构数组BaseTitle
/// </summary>
/// <param name="SQL">查询语句。比如select myName from tableName</param>
/// <param name="SQLForCount">用于统计记录数的SQL语句。如果传入数字的话,则直接使用数字作为记录数。</param>
/// <param name="TitleCount">标题的字符数,一个汉字按照两个字符计算。传入“0”则表示不截取标题。</param>
/// <param name="DateFormat">时间格式。比如“yyyy-MM-dd HH:mm:ss dddd”</param>
/// <returns>返回BaseTitle结构的数组。URL,标题,时间,人气</returns>
public BaseTitle[] RunSqlStructBaseTitle(string SQL,int DataCount,int TitleCount,string DateFormat,int IntroCount)
{
if (DataCount <)
return null;
return RunSqlStructBT(SQL,DataCount,TitleCount,DateFormat,IntroCount);
}
#endregion
#region 函数实现 — — RunSqlStructBaseTitle
/// <summary>
/// 运行SQl语句返回结构数组BaseTitle
/// </summary>
/// <param name="SQL">查询语句。比如select myName from tableName</param>
/// <param name="SQLForCount">用于统计记录数的SQL语句。如果传入数字的话,则直接使用数字作为记录数。</param>
/// <param name="TitleCount">标题的字符数,一个汉字按照两个字符计算。传入“0”则表示不截取标题。</param>
/// <param name="DateFormat">时间格式。比如“yyyy-MM-dd HH:mm:ss dddd”</param>
/// <returns>返回BaseTitle结构的数组。URL,标题,时间,人气</returns>
private BaseTitle[] RunSqlStructBT(string SQL,int DataCount,int TitleCount,string DateFormat,int IntroCount)
{
//返回ID 传入查询语句,返回第一条记录的第一的字段的值
SetCommand(SQL,); //设置command
SqlDataReader r = null;
try
{
if (cm.Connection.State == ConnectionState.Broken || cm.Connection.State == ConnectionState.Closed )
cm.Connection.Open();
BaseTitle[] strValue = new BaseTitle[DataCount];
r = cm.ExecuteReader();
int i = ;
while (r.Read())
{
//主键
strValue[i].ID = r[].ToString();
//网址
strValue[i].URL = r[].ToString();
//判断截取字符数
if (TitleCount == )
{
strValue[i].AllTitle = r[].ToString();
strValue[i].Title = r[].ToString();
}
else
{
strValue[i].AllTitle = r[].ToString();
strValue[i].Title = Functions.strCal(r[].ToString(),TitleCount);
}
//判断时间
if (DateFormat.Length == )
strValue[i].AddedDate = r[].ToString();
else
strValue[i].AddedDate = DateTime.Parse(r[].ToString()).ToString(DateFormat);
//人气
strValue[i].Hits = r[].ToString();
//图片路径
strValue[i].ImagePath = r[].ToString();
//内容简介
if (IntroCount == )
strValue[i].Introduction = r[].ToString();
else
strValue[i].Introduction = Functions.strCal(r[].ToString(),IntroCount);
i++;
}
// if (i == 0)
// {
// //没有数据,返回空
// return null;
// }
// else if (i < DataCount )
// {
// //记录数不够用,修改数组大小
// BaseTitle[] tmp = new BaseTitle[i];
// int j = 0;
// foreach(BaseTitle tt in strValue)
// {
// tmp[j].Hits = tt.Hits ;
// tmp[j].ID = tt.ID ;
// tmp[j].ImagePath = tt.ImagePath ;
// tmp[j].Introduction = tt.Introduction ;
// tmp[j].Title = tt.Title ;
// tmp[j].URL = tt.URL ;
// j++;
// if (j == i )
// break;
// }
// return tmp;
// }
// else
// {
// return strValue;
// }
return strValue;
}
catch(Exception ex)
{
SetErrorMsg("RunSqlStructBT",SQL,ex.Message ); //处理错误
return null;
}
finally
{
if (r != null)
r.Close();
if (!isUseTrans)
cm.Connection.Close();
}
}
#endregion
//=====================================================================
#region 函数实现 — — RunSqlStructCusTitle
/// <summary>
/// 运行SQl语句返回结构数组 CusTitle
/// </summary>
/// <param name="SQL">查询语句。比如select myName from tableName</param>
/// <param name="SQLForCount">用于统计记录数的SQL语句。如果传入数字的话,则直接使用数字作为记录数。</param>
/// <param name="TitleCount">标题的字符数,一个汉字按照两个字符计算。传入“0”则表示不截取标题。</param>
/// <param name="DateFormat">时间格式。比如“yyyy-MM-dd HH:mm:ss dddd”</param>
/// <returns>返回BaseTitle结构的数组。URL,标题,时间,人气</returns>
public CusTitle[] RunSqlStructCusTitle(string SQL,string SQLForCount)
{
string strRowCount = RunSqlGetID(SQLForCount);
if (strRowCount == null)
return null;
int DataCount = Int32.Parse(strRowCount);
if (DataCount <)
return null;
return RunSqlStructCT(SQL,DataCount);
}
#endregion
#region 函数实现 — — RunSqlStructCusTitle
/// <summary>
/// 运行SQl语句返回结构数组 CusTitle
/// </summary>
/// <param name="SQL">查询语句。比如select myName from tableName</param>
/// <param name="SQLForCount">用于统计记录数的SQL语句。如果传入数字的话,则直接使用数字作为记录数。</param>
/// <param name="TitleCount">标题的字符数,一个汉字按照两个字符计算。传入“0”则表示不截取标题。</param>
/// <param name="DateFormat">时间格式。比如“yyyy-MM-dd HH:mm:ss dddd”</param>
/// <returns>返回BaseTitle结构的数组。URL,标题,时间,人气</returns>
public CusTitle[] RunSqlStructCusTitle(string SQL,int DataCount)
{
if (DataCount <)
return null;
return RunSqlStructCT(SQL,DataCount);
}
#endregion
#region 函数实现 — — RunSqlStructCT
/// <summary>
/// 运行SQl语句返回结构数组 CusTitle
/// </summary>
/// <param name="SQL">查询语句。比如select myName from tableName</param>
/// <param name="SQLForCount">用于统计记录数的SQL语句。如果传入数字的话,则直接使用数字作为记录数。</param>
/// <param name="TitleCount">标题的字符数,一个汉字按照两个字符计算。传入“0”则表示不截取标题。</param>
/// <param name="DateFormat">时间格式。比如“yyyy-MM-dd HH:mm:ss dddd”</param>
/// <returns>返回BaseTitle结构的数组。URL,标题,时间,人气</returns>
private CusTitle[] RunSqlStructCT(string SQL,int DataCount)
{
//返回ID 传入查询语句,返回第一条记录的第一的字段的值
SetCommand(SQL,); //设置command
SqlDataReader r = null;
try
{
if (cm.Connection.State == ConnectionState.Broken || cm.Connection.State == ConnectionState.Closed )
cm.Connection.Open();
CusTitle[] strValue = new CusTitle[DataCount];
r = cm.ExecuteReader();
int i = ;
int ArrLength = r.FieldCount-;
while (r.Read())
{
//ID
strValue[i].ID = r[].ToString();
//标题
strValue[i].Title = r[].ToString();
//其他
strValue[i].str = new string[ArrLength];
for(int j=;j<ArrLength;j++)
strValue[i].str[j] = r.GetValue(j+).ToString();
i++;
}
return strValue;
}
catch(Exception ex)
{
SetErrorMsg("RunSqlStrs",SQL,ex.Message ); //处理错误
return null;
}
finally
{
if (r != null)
r.Close();
if (!isUseTrans)
cm.Connection.Close();
}
}
#endregion
//===========================end==============================
下载全部源文件。
http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JAVA|Java的Scanner类初级使用
- systemd设置nginx开机自启动
- C盘爆满,如何移除软件~
- Microsoft PowerToys
- MagicEXIF(元数据编辑器)
- 9个 SSH常用命令选项
- DietPi折腾记
- DietPi配置问题(1)
- DietPi配置问题(2)
- 什么是死锁?如何解决死锁?
- Mac终端配置oh-my-zsh
- 聊聊dubbo-go的leastActiveLoadBalance
- ThreadLocal与InheritableThreadLocal
- 每天学点JavaScript基础(1)—— null 和 undefined
- 每天学点JavaScript基础(2)——JavaScript里的分号,你加还是不加?