DescriptionSqlBuilder is a toolset with capabilities to build your SQL without strings. It's a full managed code and help us to build Select, Insert, Update and Delete statements.
Architecture NotesIf your use SqlBuilder, use an Code Generator engine to generate your Data Acess classes.
SqlBuilder is a helper to generate Sql manually. If you need write sql, do it. Before add SqlBuilder in your solution, think about an ORM mapper like Nhibernate, Entity Framework, Gentle.Net, Subsonic or other.
Select teste case (with optional parameters, Between, And, Or, Not, Like, OrderBy, cloning and more)
http://sqlbuilder.codeplex.com/sourcecontrol/changeset/view/27052?projectName=SqlBuilder#444691
Select Statement
SelectSQLBuilder target = new SelectSQLBuilder(); // TODO: Initialize to an appropriate value
target.Tables.Add(new FromItem(LiteralManager.GetLiteralBuilder().BuildTableName("dataBaseName", "dbo", "tableOfView"), "con"));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("idOfTable")));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("Site"), "Nome"));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("columnName01")));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("columnName02")));
OrBinaryOperator orBinaryOperator = new OrBinaryOperator(
new IsNullOperator(
LiteralManager.GetLiteralBuilder().BuildParameter("columnName02")
),
new EqualToOperator(
LiteralManager.GetLiteralBuilder().BuildColumnName("columnName02"),
LiteralManager.GetLiteralBuilder().BuildParameter("columnName02")
)
);
target.WhereClause.Items.Add(orBinaryOperator);
string actual = target.ToSQL();
Delete Statement
DeleteSQLBuilder target = new DeleteSQLBuilder();
target.TableName = LiteralManager.GetLiteralBuilder().BuildTableName("Table01");
target.WhereClause.Items.Add(
new EqualToOperator(
LiteralManager.GetLiteralBuilder().BuildColumnName("ID"),
LiteralManager.GetLiteralBuilder().BuildParameter("ID")
)
);
string actual = target.ToSQL();
Insert Statement
InsertSQLBuilder target = new InsertSQLBuilder(); // TODO: Initialize to an appropriate value
target.TableName = LiteralManager.GetLiteralBuilder().BuildTableName("dataBaseName.dbo.tableOfView");
target.CollumnsAndValues.Add(
new SetItem(
LiteralManager.GetLiteralBuilder().BuildColumnName("columnName01"),
LiteralManager.GetLiteralBuilder().BuildParameter("columnName01")
)
);
target.CollumnsAndValues.Add(
new SetItem(
LiteralManager.GetLiteralBuilder().BuildColumnName("columnName02"),
LiteralManager.GetLiteralBuilder().BuildParameter("columnName02")
)
);
string actual = target.ToSQL() + LiteralManager.GetLiteralBuilder().GetLastIdentity(null).ToSQL();
Update Statement
UpdateSQLBuilder target = new UpdateSQLBuilder();
target.TableName = LiteralManager.GetLiteralBuilder().BuildTableName("Table01");
target.CollumnsAndValues.Add(
new SetItem(
LiteralManager.GetLiteralBuilder().BuildColumnName("Coluna1"),
LiteralManager.GetLiteralBuilder().BuildParameter("Coluna1")
)
);
target.WhereClause.Items.Add(
new EqualToOperator(
LiteralManager.GetLiteralBuilder().BuildColumnName("ID"),
LiteralManager.GetLiteralBuilder().BuildParameter("ID")
)
);
string actual = target.ToSQL();
Brazilian Project
