本文整理汇总了C#中SQLiteConnection.CreateAggregate方法的典型用法代码示例。如果您正苦于以下问题:C# SQLiteConnection.CreateAggregate方法的具体用法?C# SQLiteConnection.CreateAggregate怎么用?C# SQLiteConnection.CreateAggregate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SQLiteConnection
的用法示例。
在下文中一共展示了SQLiteConnection.CreateAggregate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestAggregate
public void TestAggregate()
{
using (var connection = new SQLiteConnection(this.databaseRelativePath))
{
connection.CreateAggregate(
"CUSTOMAGGSUM",
1,
new AggregateStep((aggregateContextData, arguments) =>
{
aggregateContextData["Acum"] = aggregateContextData.ContainsKey("Acum") ? (long)arguments[0] + (long)aggregateContextData["Acum"] : (long)arguments[0];
}),
new AggregateFinal((aggregateContextData) =>
{
return aggregateContextData.ContainsKey("Acum") ? (long)aggregateContextData["Acum"] : 0L;
}));
using (var statement = connection.Prepare("DROP TABLE IF EXISTS TestAggregate;"))
{
statement.Step();
}
using (var statement = connection.Prepare("CREATE TABLE TestAggregate(id INTEGER);"))
{
statement.Step();
}
using (var statement = connection.Prepare("INSERT INTO TestAggregate(id) VALUES(@id);"))
{
for (var value = 0; value < 10; value++)
{
statement.Bind(1, value);
statement.Step();
statement.Reset();
statement.ClearBindings();
}
}
using (var statement = connection.Prepare("SELECT CUSTOMAGGSUM(id) AS CustomResult FROM TestAggregate;"))
{
var rowTotal = 0;
while (statement.Step() == SQLiteResult.ROW)
{
rowTotal++;
var totalSum = (long)statement[0];
Assert.AreEqual(45, totalSum);
}
Assert.AreEqual(1, rowTotal);
}
using (var statement = connection.Prepare("DROP TABLE TestAggregate;"))
{
statement.Step();
}
}
}