将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语句封装在类库中的更多相关文章

  1. 怎样用SQL语句查询一个数据库中的所有表?

    怎样用SQL语句查询一个数据库中的所有表?  --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...

  2. SQL语句在查询分析器中可以执行,代码中不能执行

    问题:SQL语句在查询分析器中可以执行,代码中不能执行 解答:sql中包含数据库的关键字,将关键字用[]括起来,可以解决. 后记:建数据库的时候尽量避免使用关键字. 例子: sql.Format(&q ...

  3. SQL语句 删除表user 中字段name 内容重复的记录,

    public class T01 { public static void main(String[] args) { int j=4; j=j+=j-=j*=j; System.out.printl ...

  4. SQL语句往Oracle数据库中插入日期型数据(to_date的用法)

    Oracle 在操作数据库上相比于其他的 T-sql 有微小的差别,但是在插入时间类型的数据是必须要注意他的 to_date 方法,具体的情况如下: --SQL语句往Oracle数据库中插入日期型数据 ...

  5. 常用SQL语句及在node中使用MySQL

    摘要:一些重要的SQL命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREA ...

  6. 用SQL语句将数据表中的数据保存为JSON格式

    没有找到好的工具,只想到了拼字符串的方式,用   NVARCHAR(MAX)  可能有截断,不推荐使用,方法中使用了 FOR XML PATH('') 实现,有关其使用方法参考这里 表结构: SQL ...

  7. 6-03使用SQL语句一次型向表中插入多行数据

    通过将现有表中的数据添加到已存在的表中: INSERT INTO <表名><列名> SELECT<列名> FROM<源表名> 将UserInfo的数据添 ...

  8. 嵌套SQL语句訪问DB2中SQLCA的调用技巧

    在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句执行情况返回给程序. 在程序中有针对性地对SQLCA实施调用,可对程序中各类S ...

  9. MySQL插入SQL语句后在phpmyadmin中注释显示乱码

    自己写一个建一个简单的数据表,中间加了个注释,但是用PHPmyadmin打开后发现注释不对. 就先查询了一下sql 语句 发现SQL 语句并没有问题,感觉像是显示编码的问题,就先用set names ...

随机推荐

  1. scala学习笔记:集合

    scala> 1 to 10 res9: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9 ...

  2. MySql数据库的导入_命令工具

    一.如何导入别人已经建好的数据库 create database goods use goods source E:\goods.sql (绝对路径) 这样就导入了指定的数据库到本机电脑 二.任何数据 ...

  3. 在页面生命周期执行时 Page 对象在 SaveState 阶段都发生了什么事?

    先看下 SaveViewState 的源码: // Answer any state this control or its descendants want to save on freeze. / ...

  4. oracle 12 C启动问题

    启动时出现以下报错信息: SQL> startup; ORA-48146: missing read, write, or exec permission on directory during ...

  5. ubuntu 恢复gnome-panel

    Ubuntu重启panel 的方法首先进入终端, 依次输入以下命令1.gconftool --recursive-unset /apps/panel2.rm -rf ~/.gconf/apps/pan ...

  6. C# 清除当前窗体中TextBox控件中的内容

    //当有多个窗体时,对顶层的窗口进行操作,例如:我们开发具有录入功能的界面的时候,为了防止提交后的二次(重复)录入,希望点击提交按钮并提示成功后,界面的所有文本框内容能够自动清空.NET Framew ...

  7. 306573704 Char型和string型字符串比较整理(转)

    1.赋值 char赋值: char ch1[] = "give me"; char ch2[] = "a cup"; strcpy(ch1,ch2); cout ...

  8. Windows Phone 动态改变ListBox样式

    使用ListBox时通常会借助ItemTemplate帮助我们实现更复杂多样的样式显示,体现了Xaml的灵活.如何动态改变变ListBox的样式,实现类似电脑资源管理器中列表显示和图标显示形式的替换. ...

  9. wamp下开启SSL,解决APACHE启动问题

    wamp开启SSL解决wamp5_1.7.4中APACHE启动问题 1.#修改httpd.conf文件LoadModule ssl_module modules/mod_ssl.soInclude c ...

  10. JQuery中的动画

    一.show()方法和hide()方法 这两种方法是jQuery动画的最基本方法.当为元素调用show方法时相当于将该元素的display样式改为block或者inline,同理,如果当元素调用hid ...