asp.net将sql语句封装在类库中
将sql语句封装在cs中,通过类库的引用使用他的select、update、insert
源代码(cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//包括from、where、group by、order by...
namespace BLL
{//------------------------------------------------------------------------------------------------
/// <summary>
/// 构建 SQL 语句
/// </summary>
[Serializable]
public class BuildSQL
{
#region 字段
private int g_intStart;
private int g_intRowCnt;
private string g_strField;
private string g_strFrom;
private string g_strWhere;
private string g_strOrderBy;
private string g_strGroupBy;
private string g_strOther;
#endregion
#region 属性
//--------------------------------------------------------------------------------------------
/// <summary>
/// 取得数据开始编号
/// </summary>
public int Start
{
get { return g_intStart; }
set { g_intStart = value; }
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 取得记录数
/// </summary>
public int RowCnt
{
get { return g_intRowCnt; }
set { g_intRowCnt = value; }
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 字段名
/// </summary>
public string Field
{
get { return g_strField; }
set { g_strField = value; }
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 表名
/// </summary>
public string From
{
get { return g_strFrom; }
set { g_strFrom = value; }
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 条件
/// </summary>
public string Where
{
get { return g_strWhere; }
set { g_strWhere = value; }
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 排序
/// </summary>
public string OrderBy
{
get { return g_strOrderBy; }
set { g_strOrderBy = value; }
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 分组
/// </summary>
public string GroupBy
{
get { return g_strGroupBy; }
set { g_strGroupBy = value; }
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 其它
/// </summary>
public string Other
{
get { return g_strOther; }
set { g_strOther = value; }
}
#endregion
#region 方法
//--------------------------------------------------------------------------------------------
/// <summary>
/// 初始化构建 SQL 语句
/// </summary>
public BuildSQL()
{
g_strField = "*";
g_strFrom = "";
g_strWhere = "";
g_strOrderBy = "";
g_strGroupBy = "";
g_strOther = "";
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 初始化构建 SQL 语句
/// </summary>
/// <param name="m_strFrom">表名</param>
public BuildSQL(string m_strFrom)
: this()
{
g_strFrom = m_strFrom;
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 初始化构建 SQL 语句
/// </summary>
/// <param name="m_strField">字段名</param>
/// <param name="m_strFrom">表名</param>
public BuildSQL(string m_strField, string m_strFrom)
: this()
{
g_strField = m_strField;
g_strFrom = m_strFrom;
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 初始化构建 SQL 语句
/// </summary>
/// <param name="m_strField">字段名</param>
/// <param name="m_strFrom">表名</param>
/// <param name="m_strWhere">条件</param>
public BuildSQL(string m_strField, string m_strFrom, string m_strWhere)
: this()
{
g_strField = m_strField;
g_strFrom = m_strFrom;
g_strWhere = m_strWhere;
}
public BuildSQL(string m_strField, string m_strFrom, string m_strWhere, string m_strGroupBy)
: this()
{
g_strField = m_strField;
g_strFrom = m_strFrom;
g_strWhere = m_strWhere;
g_strGroupBy = m_strGroupBy;
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 初始化构建 SQL 语句
/// </summary>
/// <param name="m_strField">字段名</param>
/// <param name="m_strFrom">表名</param>
/// <param name="m_strWhere">条件</param>
/// <param name="m_strOrderBy">排序</param>
//public BuildSQL(string m_strField, string m_strFrom, string m_strWhere, string m_strOrderBy)
// : this()
//{
// g_strField = m_strField;
// g_strFrom = m_strFrom;
// g_strWhere = m_strWhere;
// g_strOrderBy = m_strOrderBy;
//}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 初始化构建 SQL 语句
/// </summary>
/// <param name="m_strField">字段名</param>
/// <param name="m_strFrom">表名</param>
/// <param name="m_strWhere">条件</param>
/// <param name="m_strOrderBy">排序</param>
/// <param name="m_strGroupBy">分组</param>
public BuildSQL(string m_strField, string m_strFrom,
string m_strWhere, string m_strOrderBy, string m_strGroupBy)
: this()
{
g_strField = m_strField;
g_strFrom = m_strFrom;
g_strWhere = m_strWhere;
g_strOrderBy = m_strOrderBy;
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 初始化构建 SQL 语句
/// </summary>
/// <param name="m_strField">字段名</param>
/// <param name="m_strFrom">表名</param>
/// <param name="m_strWhere">条件</param>
/// <param name="m_strOrderBy">排序</param>
/// <param name="m_strGroupBy">分组</param>
/// <param name="m_strOther">其它</param>
public BuildSQL(string m_strField, string m_strFrom, string m_strWhere,
string m_strOrderBy, string m_strGroupBy, string m_strOther)
: this()
{
g_strField = m_strField;
g_strFrom = m_strFrom;
g_strWhere = m_strWhere;
g_strOrderBy = m_strOrderBy;
g_strOther = m_strOther;
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 获取统计记录数的 SQL 语句
/// </summary>
/// <returns>返回 SQL 语句</returns>
public string getRowTotalSQL()
{
return "SELECT COUNT(1) " + getFromSQL();
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 构建 SQL 语句
/// </summary>
/// <returns>返回 SQL 语句</returns>
public string getSQL()
{
return "SELECT " + g_strField + getFromSQL()
+ (g_strOrderBy != "" ? " ORDER BY " + g_strOrderBy : "")
+ (g_strGroupBy != "" ? " GROUP BY " + g_strGroupBy : "")
+ g_strOther;
}
//--------------------------------------------------------------------------------------------
/// <summary>
/// 获取除字段信息外的 SQL 语句
/// </summary>
/// <returns>返回 SQL 语句</returns>
private string getFromSQL()
{
return " FROM " + g_strFrom
+ (g_strWhere != "" ? " WHERE " + g_strWhere : "");
}
#endregion
}
}
实例:将sql server数据库中的数据导入到station的gridview中
连接到数据库:
<appSettings>
<!--数据库连接字符串-->
<add key="DBConnString" value="Data Source=localhost;database=manager;uid=sa;pwd=sa;" />
</appSettings>
在station页面page_load时加载dataBind(sender,e)方法:
private void dataBind(object sender, System.EventArgs e)
{
#region SELECT FIELD 语句
StringBuilder sbField = new StringBuilder();
sbField.Append(" a.id");
sbField.Append(" ,a.tname");
sbField.Append(" ,a.agency ");
sbField.Append(" ,a.province");
sbField.Append(" ,a.city");
sbField.Append(" ,a.address");
sbField.Append(" ,a.long");
sbField.Append(" ,a.lat");
sbField.Append(" ,a.error");
sbField.Append(" ,a.tperson");
sbField.Append(" ,a.perphone");
sbField.Append(" ,b.sname");
sbField.Append(" ,b.sperson");
sbField.Append(" ,b.sphone");
sbField.Append(" ,a.bgtime");
sbField.Append(" ,a.endtime");
sbField.Append(" ,a.ctime");
#endregion SELECT FIELD 语句
#region SELECT FROM 语句
StringBuilder sbFrom = new StringBuilder();
sbFrom.Append(" station a ");
//将left join语句添加至此
sbFrom.Append(" left join service b on b.id = a.service ");
//sbFrom.Append(" left join engineer c on c.service = b.id ");
#endregion SELECT FROM 语句
#region SELECT WHERE 语句
List<SqlParameter> paramList = new List<SqlParameter>();
StringBuilder sbWhere = new StringBuilder();
sbWhere.Append(" 1 = 1 ");
if (!string.IsNullOrWhiteSpace(TextBox1.Text))
{
sbWhere.Append(" and a.tname like @tname ");
paramList.Add(new SqlParameter("@tname", "%" + TextBox1.Text + "%"));
}
if (!string.IsNullOrWhiteSpace(TextBox2.Text))
{
sbWhere.Append(" and a.city like @city ");
paramList.Add(new SqlParameter("@city", "%" + TextBox2.Text + "%"));
}
#endregion SELECT WHERE 语句
//StringBuilder sbGroupBy = new StringBuilder();
//sbGroupBy.Append(" group by a.tname ");
#region SELECT 语句
//SQL语句
BuildSQL bsSQL = new BuildSQL
(sbField.ToString(), sbFrom.ToString(), sbWhere.ToString());
//传递参数
SqlParameter[] bsParam = paramList.ToArray();
#endregion SELECT 语句
#region 分页绑定
uc_GvPage.RowTotal = GvDataBind.getRowTotal(bsSQL, bsParam);
uc_GvPage.init_Lbl();
//获取显示的数据
bsSQL.Start = uc_GvPage.RowNum;
bsSQL.RowCnt = uc_GvPage.RowCount;
GvDataBind.dataBind(GridView1, bsSQL, bsParam);
#endregion 分页绑定
}
至此,实例分析完毕。
源码网址:这里写链接内容
登录名:高阳
密码:gaoyang
版权声明:本文为博主原创文章,未经博主允许不得转载。
asp.net将sql语句封装在类库中的更多相关文章
- 怎样用SQL语句查询一个数据库中的所有表?
怎样用SQL语句查询一个数据库中的所有表? --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...
- SQL语句在查询分析器中可以执行,代码中不能执行
问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...
- SQL语句 删除表user 中字段name 内容重复的记录,
public class T01 { public static void main(String[] args) { int j=4; j=j+=j-=j*=j; System.out.printl ...
- SQL语句往Oracle数据库中插入日期型数据(to_date的用法)
Oracle 在操作数据库上相比于其他的 T-sql 有微小的差别,但是在插入时间类型的数据是必须要注意他的 to_date 方法,具体的情况如下: --SQL语句往Oracle数据库中插入日期型数据 ...
- 常用SQL语句及在node中使用MySQL
摘要:一些重要的SQL命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREA ...
- 用SQL语句将数据表中的数据保存为JSON格式
没有找到好的工具,只想到了拼字符串的方式,用 NVARCHAR(MAX) 可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL ...
- 6-03使用SQL语句一次型向表中插入多行数据
通过将现有表中的数据添加到已存在的表中: INSERT INTO <表名><列名> SELECT<列名> FROM<源表名> 将UserInfo的数据添 ...
- 嵌套SQL语句訪问DB2中SQLCA的调用技巧
在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句执行情况返回给程序. 在程序中有针对性地对SQLCA实施调用,可对程序中各类S ...
- MySQL插入SQL语句后在phpmyadmin中注释显示乱码
自己写一个建一个简单的数据表,中间加了个注释,但是用PHPmyadmin打开后发现注释不对. 就先查询了一下sql 语句 发现SQL 语句并没有问题,感觉像是显示编码的问题,就先用set names ...
随机推荐
- WCF图片上传
WCF越来越流行,俺也在用,这是废话.项目中遇到需要图片上传,但是wcf上传会遇到一些异常,调试了N久,找了好多个解决方案才最终解决.代码直接贴上了 /// <summary> /// 笔 ...
- ASP实现用年月日时分秒和两位随机数字来作为上传文件名的函数
Public Function GetNewFileName() dim ranNum dim dtNow dtNow=Now() randomize ranNum=int(90*rnd)+10 Ge ...
- length prototype 函数function的属性,以及构造函数
前言:学到一些JavaScript高级的知识,在这里记下,方便以后的查找 1.length代表函数定义的形参的个数,挺简单的 例如:function Pen(price,cname) { . ...
- 动易标签函数position() 应用
Position()返回当前正在被处理的节点的 index 位置.例子://book[position()<=3].结果:选择前三个 book 元素当然在动易标签中,我们不需要这样用,因为用sq ...
- [DLL] Dynamic link library (dll) 的编写和使用教程
前一阵子,项目里需要导出一个DLL,但是导出之后输出一直不怎么对,改了半天才算改对...读了一些DLL教程,感觉之后要把现在的代码导出,应该还要花不少功夫...下面教程参照我读的3个教程写成,所以内容 ...
- debian 学习记录-3 -关于linux -1
来源:<Debian标准教程>王旭 著 芬兰人Linus Trovalds 1991年1月2日···· 2006年初发布内核2.6.15 使用Andrew Tanenbaum < ...
- 动态链接库找不到 : error while loading shared libraries: libgsl.so.0: cannot open shared object file: No such file or directory
问题: 运行gsl(GNU scientific Library)的函数库,用 gcc erf.c -I/usr/local/include -L/usr/local/lib64 -L/usr/loc ...
- jQuery关于导航条背景切换
效果如下: <DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jqu ...
- jQuery手风琴广告展示插件
效果说明:当鼠标移动到已折叠广告的标题后,折叠当前已展开的广告,并同步展开相应的折叠广告.这种Accordion效果,看似简单,但因为存在动画同步的问题,不能简单地用两个animate()来实现.必须 ...
- js实现浏览器兼容复制功能
经常看到这样一种效果:就是单击一个按钮,就将某个区域内的内容,复制到了剪切板中.其实这个功能实现起来也不难,核心就是用到了window子对象clipboardData的一个方法:setData()语法 ...