65.9K
CodeProject 正在变化。 阅读更多。
Home

BuildQuery - 一个简单的 SQL 查询工具

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.60/5 (6投票s)

2009 年 12 月 28 日

CPOL

3分钟阅读

viewsIcon

45378

downloadIcon

192

一个自定义类, 用于创建 SQL 查询, 而无需冗长且可能令人困惑的字符串连接。

引言

BuildQuery 类用于在使用 C# 的 ASP.NET 页面中更快、更轻松地创建大型或复杂的 SQL INSERTUPDATE 查询。该类将接受数据集并输出有效的查询。还有一个方法可以刷新内部存储中的数据,以便该类可以用于任意数量的查询,而无需重复创建和销毁对象。下载文件包含源代码和发布版本的 DLL 文件。如果您需要调试版本,您可以自行编译代码。

Using the Code

方法

BuildIDSettingsFlushAllData 方法用于对数据进行操作,而 InsertUpdateDelete 方法用于处理数据。在这六个方法中,只有 BuildIDSettings 有参数。

  • BuildBuildQueryBuild 方法是将查询字段及其值添加到处理数据的方法中的方式。Build 方法有三个参数(全部必需),调用方式如下:
    obj.Build(InputField, InputData, InputQuotes); 
    • InputField - 包含数据将出现的列的 String
    • InputData - 包含要使用的数据的 String
    • InputQuotes - 布尔值,指示数据是否应括在引号中
    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyField = "Name";
    MyData = "John Smith";
    MyQuotes = true;
    
    MyQuery.Build(MyField, MyData, MyQuotes);
  • FlushAllDataBuildQueryFlushAllData 方法用于清除使用 Build 方法存储的任何值。FlushAllData 方法的调用方式如下:
    obj.FlushAllData()

    示例

    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyQuery.Table = "MyTable";
    MyQuery.Build(MyField, MyData, MyQuotes);
    strQuery = MyQuery.Insert;
    MyQuery.FlushAllData();
    //The object is now ready to work on a different set of data
  • IDSettingsBuildQueryIDSettings 方法用于设置 UPDATEDELETE 查询的 WHERE 子句的条件。基本的 IDSettings 方法有三个参数(全部必需),还有一个重载添加了第四个参数。该方法的调用方式如下:
    obj.IDSettings(IDField, IDValue, IDQuotes);

    - 或 -

    obj.IDSettings(IDField, IDValue, IDQuotes, IDOperator);
    • IDField - 包含要使用的列的 String
    • IDValue - 包含要使用的值的 String
    • IDQuotes - 布尔值,指示值是否应带有引号
    • IDOperator - 包含要用于代替默认值的逻辑运算符的 String
    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyField = "Name";
    MyData = "John Smith";
    MyQuotes = true;
    
    MyOperator = ">=";
    MyQuery.IDSettings(MyField, MyData, MyQuotes, MyOperator);
  • InsertBuildQueryInsert 方法用于生成一个有效的 SQL INSERT 查询,该查询已准备好可在数据库中执行。此方法要求设置 Table 属性,并且至少成功调用了一个 Build 方法实例。Insert 方法的调用方式如下:
    obj.Insert();

    示例

    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyQuery.Table = "MyTable";
    MyQuery.Build(MyField, MyData, MyQuotes);
    String strQuery = MyQuery.Insert();
  • UpdateBuildQueryUpdate 方法用于生成一个有效的 SQL UPDATE 查询,该查询已准备好可在数据库中执行。此方法要求已设置 Table 属性,至少成功调用了一个 IDSettings 方法实例,并且至少成功调用了一个 Build 方法实例。Update 方法的调用方式如下:
    obj.Update();

    示例

    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyQuery.Table = "MyTable";
    MyQuery.IDSettings("MyID", MyValue, false);
    objBuildQuery.Build(MyField, MyData, true);
    String strQuery = MyQuery.Update();
  • DeleteBuildQueryDelete 方法用于永久删除数据库中指定表中的一行或多行。此方法要求设置 Table 属性,并且至少成功调用了一个 IDSettings 方法实例。Delete 方法的调用方式如下:
    obj.Delete();

    示例

    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyQuery.Table = "MyTable";
    MyQuery.IDSettings("MyID", "7", false);
    String strQuery = MyQuery.Delete(); 

属性

此类有两个属性:TableGetIdentity。这两个属性都是可读写的。

  • TableTable 属性设置要在 BuildQuery 类中使用的表。在此属性具有值之前,该类生成的任何查询都将返回 SQL 错误。
    obj.Table = value;

    示例

    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyQuery.Table = "MyTable";
  • GetIdentityGetIdentity 属性获取或设置生成的 INSERT 查询是否将返回插入到数据库中的行的标识值。此属性默认为 false
    obj.GetIdentity = true;

    示例

    NoInkSoftware.BuildQuery MyQuery = new NoInkSoftware.BuildQuery();
    MyQuery.GetIdentity = true;

关注点

这最初是一个 Classic ASP 类,那时我正在学习如何处理 ADO 和自定义类。当我学习 ASP.NET 时,我仍然发现自己想在当前操作无法直接与现有内置内容协同工作时使用它,因此它跳转到了 .NET。

历史

这是 v1.0.0.1 版本。Insert() 方法中发现了一个错误,现已更正。如果您下载了原始版本,则应下载此新版本并将其替换为原始版本。

© . All rights reserved.