本文整理汇总了C#中SqlBuilder类的典型用法代码示例。如果您正苦于以下问题:C# SqlBuilder类的具体用法?C# SqlBuilder怎么用?C# SqlBuilder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SqlBuilder类属于命名空间,在下文中一共展示了SqlBuilder类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: List
/// <summary>
/// The list of results.
/// </summary>
/// <param name="maxResults">The max results.</param>
/// <param name="start">The start</param>
/// <param name="finish">The finish</param>
/// <param name="orderBy">The order by.</param>
/// <returns>The result set</returns>
public override IEnumerable<Guid> List(
int maxResults,
DateTime? start = null,
DateTime? finish = null,
ListResultsOrder orderBy = ListResultsOrder.Descending)
{
var builder = new SqlBuilder();
var t = builder.AddTemplate("select Id from MiniProfilers /**where**/ /**orderby**/ LIMIT(" + maxResults + ")");
if (start != null)
{
builder.Where("Started > @start", new { start });
}
if (finish != null)
{
builder.Where("Started < @finish", new { finish });
}
builder.OrderBy(orderBy == ListResultsOrder.Descending ? "Started desc" : "Started asc");
using (var conn = GetOpenConnection())
{
return conn.Query<Guid>(t.RawSql, t.Parameters).ToList();
}
}
示例2: BuilderSelectClause
public void BuilderSelectClause()
{
using (var dbConn = dbFactory.OpenDbConnection())
using (var dbCmd = dbConn.CreateCommand())
{
var rand = new Random(8675309);
var data = new List<User>();
for (var i = 0; i < 100; i++)
{
var nU = new User { Age = rand.Next(70), Id = i, Name = Guid.NewGuid().ToString() };
data.Add(nU);
dbCmd.Insert(nU);
nU.Id = (int) dbCmd.GetLastInsertId();
}
var builder = new SqlBuilder();
var justId = builder.AddTemplate("SELECT /**select**/ FROM Users");
var all = builder.AddTemplate("SELECT /**select**/, Name, Age FROM Users");
builder.Select("Id");
var ids = dbCmd.Query<int>(justId.RawSql, justId.Parameters);
var users = dbCmd.Query<User>(all.RawSql, all.Parameters);
foreach (var u in data)
{
Assert.That(ids.Any(i => u.Id == i), "Missing ids in select");
Assert.That(users.Any(a => a.Id == u.Id && a.Name == u.Name && a.Age == u.Age), "Missing users in select");
}
}
}
示例3: GetAlls
public static IEnumerable<BusOperator> GetAlls()
{
var builder = new SqlBuilder();
var template = builder.AddTemplate(@"
select *
from BusOperator bo
order by bo.Name");
return Current.DB.Query<BusOperator>(template.RawSql, template.Parameters);
}
示例4: TestLessThanConstraint
public void TestLessThanConstraint()
{
SqlBuilder builder = new SqlBuilder( StatementType.Count, typeof(MailingList) );
builder.AddConstraint( Operator.LessThan, "Id", 3 );
int count = GetCount( builder );
Assert.AreEqual( 2, count );
}
示例5: TestGreaterThanOrEqualsConstraint
public void TestGreaterThanOrEqualsConstraint()
{
SqlBuilder builder = new SqlBuilder( StatementType.Count, typeof(MailingList) );
builder.AddConstraint( Operator.GreaterThanOrEquals, "Id", 3 );
int count = GetCount( builder );
Assert.AreEqual( 1, count );
}
示例6: GetCount
private int GetCount( SqlBuilder builder )
{
SqlStatement statement = builder.GetStatement();
SqlResult result = statement.Execute();
int count = result.Count;
return count;
}
示例7: TestCRUD
public void TestCRUD()
{
// skip test if GUIDs are not supported by database backend
if( runTest )
{
o1 = new GuidHolder( 42 );
// insert
o1.Persist();
// select
o2 = GuidHolder.Retrieve( o1.Id );
// verify select/insert
Assert.IsNotNull( o2.Id, "The object could not be retrieved from the database!" );
Assert.AreEqual( o1.Id, o2.Id, "The object could not be retrieved from the database!" );
Assert.AreEqual( o1.SomeValue, o2.SomeValue, "The object could not be retrieved from the database!" );
// update
o2.SomeValue = 1234;
o2.Persist();
// verify update
o1 = GuidHolder.Retrieve( o2.Id );
Assert.AreEqual( o2.Id, o1.Id, "The object could not be retrieved from the database!" );
// delete
o2.Remove();
// verify delete by counting the number of rows
SqlBuilder sb = new SqlBuilder( StatementType.Count, typeof(GuidHolder) );
sb.AddConstraint( Operator.Equals, "Id", o1.Id );
SqlResult sr = Broker.Execute( sb.GetStatement( true ) );
Assert.AreEqual( 0, sr.Count, "Object not removed" );
}
}
示例8: InitChannels
private void InitChannels()
{
listViewChannels.Clear();
listViewChannels.BeginUpdate();
try
{
SqlBuilder sb = new SqlBuilder(Gentle.Framework.StatementType.Select, typeof (Channel));
if (checkBoxGuideChannels.Checked)
{
sb.AddConstraint(Operator.Equals, "visibleInGuide", 1);
}
sb.AddConstraint(Operator.Equals, "isTv", 1);
sb.AddOrderByField(true, "sortOrder");
sb.AddOrderByField(true, "displayName");
SqlStatement stmt = sb.GetStatement(true);
IList<Channel> channels = ObjectFactory.GetCollection<Channel>(stmt.Execute());
for (int i = 0; i < channels.Count; i++)
{
// TODO: add imagelist with channel logos from MP :)
ListViewItem curItem = new ListViewItem(channels[i].DisplayName);
curItem.Tag = channels[i];
listViewChannels.Items.Add(curItem);
}
}
finally
{
listViewChannels.EndUpdate();
}
mpButtonOk.Enabled = (listViewChannels.Items.Count > 0);
}
示例9: Prepare
internal override PreparedDatabaseCommand Prepare(DocumentStore store, Guid etag, int uniqueParameterIdentifier)
{
var values = ConvertAnonymousToProjections(table, projections);
values[table.EtagColumn] = etag;
values[table.ModifiedAtColumn] = DateTimeOffset.Now;
var sql = new SqlBuilder()
.Append("update {0} set {1} where {2}[email protected]{3}",
store.Database.FormatTableNameAndEscape(table.Name),
string.Join(", ", from column in values.Keys select column.Name + "[email protected]" + column.Name + uniqueParameterIdentifier),
table.IdColumn.Name,
uniqueParameterIdentifier)
.Append(!lastWriteWins, "and {0}[email protected]{1}",
table.EtagColumn.Name,
uniqueParameterIdentifier)
.ToString();
var parameters = MapProjectionsToParameters(values, uniqueParameterIdentifier);
AddTo(parameters, "@Id" + uniqueParameterIdentifier, key, SqlTypeMap.Convert(table.IdColumn).DbType, null);
if (!lastWriteWins)
{
AddTo(parameters, "@CurrentEtag" + uniqueParameterIdentifier, currentEtag, SqlTypeMap.Convert(table.EtagColumn).DbType, null);
}
return new PreparedDatabaseCommand
{
Sql = sql,
Parameters = parameters.Values.ToList(),
ExpectedRowCount = 1
};
}
示例10: Prepare
internal override PreparedDatabaseCommand Prepare(DocumentStore store, Guid etag, int uniqueParameterIdentifier)
{
var sql = new SqlBuilder()
.Append("delete from {0} where {1} = @Id{2}",
store.Database.FormatTableNameAndEscape(table.Name),
table.IdColumn.Name,
uniqueParameterIdentifier)
.Append(!lastWriteWins,
"and {0} = @CurrentEtag{1}",
table.EtagColumn.Name,
uniqueParameterIdentifier)
.ToString();
var parameters = new Dictionary<string, Parameter>();
AddTo(parameters, "@Id" + uniqueParameterIdentifier, key, SqlTypeMap.Convert(table.IdColumn).DbType, null);
if (!lastWriteWins)
{
AddTo(parameters, "@CurrentEtag" + uniqueParameterIdentifier, currentEtag, SqlTypeMap.Convert(table.EtagColumn).DbType, null);
}
return new PreparedDatabaseCommand
{
Sql = sql,
Parameters = parameters.Values.ToList(),
ExpectedRowCount = 1
};
}
示例11: SqlPaging
public void SqlPaging()
{
var b = new SqlBuilder()
.Select("*")
.From("Orders o")
.Where("o.ShipCountry = @country ", new {country = "USA"})
.OrderBy("CustomerID DESC");
var paging = new
{
Page = 1,
PageSize = 25
};
var t = b.AddTemplate(
Templates.Combine(Templates.SqlServer.PagedSelection, Templates.Count),
paging);
using (var db = new SqlConnection(ConnectionStrings.Northwind))
{
Console.WriteLine(t.RawSql);
var results = db.QueryResultsSql<dynamic, int>(t.RawSql, t.Parameters);
results.Set1.Should().HaveCount(paging.PageSize, "because thats how many are in the page");
results.Set2.Single().Should().Be(122, "because thats how many there are");
}
}
示例12: Index
/// <summary>
/// GET: /search
/// GET: /search/index
/// </summary>
/// <returns></returns>
public ActionResult Index(string input, int? page, int? pageSize)
{
ViewBag.Input = input;
page = Math.Max(page ?? 1, 1); // Adjust.
pageSize = Math.Max(Math.Min(pageSize ?? 10, 100), 10); // Adjust.
int start = ((page.Value - 1) * pageSize.Value) + 1;
int finish = page.Value * pageSize.Value;
var builder = new SqlBuilder();
SqlBuilder.Template pager = null, counter = null;
pager = builder.AddTemplate("SELECT * FROM (SELECT /**select**/, ROW_NUMBER() OVER (/**orderby**/) AS RowNumber FROM Questions Q /**where**/) AS Results WHERE RowNumber BETWEEN @start AND @finish ORDER BY RowNumber",
new { start = start, finish = finish });
counter = builder.AddTemplate("SELECT COUNT(*) FROM Questions Q /**where**/");
builder.Select("Q.*");
builder.OrderBy("Q.Time DESC");
builder.Where("Q.Title LIKE @searchInput OR Q.Answer LIKE @searchInput", new { searchInput = "%" + input + "%" });
var results = Current.DB.QueryMultiple(pager.RawSql, pager.Parameters).Read<Question>();
var totals = Current.DB.Query<int>(counter.RawSql, counter.Parameters).First();
ViewData["Href"] = "/search?";
return View(new PagedList<Question>(results, page.Value, pageSize.Value, false, totals));
}
示例13: Query
public static IEnumerable<Dictionary<string, object>> Query(this SqliteConnection connection, SqlBuilder sql, SqliteTransaction transaction = null, object sqlParams = null)
{
if (sql == null)
throw new ArgumentNullException("sql", "sql cannot be null.");
return Query(connection, sql.GetSql(), transaction, sqlParams);
}
示例14: TopClause
/// <summary>
/// Creates a TopClause with the given topCount and withTies.
/// </summary>
/// <param name="topCount"></param>
/// <param name="withTies"></param>
internal TopClause(int topCount, bool withTies)
{
SqlBuilder sqlBuilder = new SqlBuilder();
sqlBuilder.Append(topCount.ToString(CultureInfo.InvariantCulture));
this.topCount = sqlBuilder;
this.withTies = withTies;
}
示例15: GetSetting
/// <summary>
/// gets a value from the database table "Setting"
/// </summary>
/// <returns>A Setting object with the stored value, if it doesnt exist the given default string will be the value</returns>
private Setting GetSetting(string tagName, string defaultValue)
{
if (defaultValue == null)
{
return null;
}
if (tagName == null)
{
return null;
}
if (tagName == "")
{
return null;
}
SqlBuilder sb;
try
{
sb = new SqlBuilder(Gentle.Framework.StatementType.Select, typeof(Setting));
}
catch (TypeInitializationException)
{
return new Setting(tagName,defaultValue);
}
sb.AddConstraint(Operator.Equals, "tag", tagName);
SqlStatement stmt = sb.GetStatement(true);
IList<Setting> settingsFound = ObjectFactory.GetCollection<Setting>(stmt.Execute());
if (settingsFound.Count == 0)
{
Setting set = new Setting(tagName, defaultValue);
set.Persist();
return set;
}
return settingsFound[0];
}