O SelectBuilder é um objeto que constroi a query dinâmicamente com base os parâmetros que você informar. Você pode combiná-la com o Command e fazer por exemplo uma cláusula "Where" dinâmica para seu projeto.

Veja este exemplo:

Declare os objetos

var command = new Command();
var query = new SelectBuilder();

Agora defina algumas propriedades do seu SelectBuilder

query.Select.Add("*");
query.TableName = "Categories";

Ou poderíamos usar ALIAS no nosso select. Isso será muito útil quando tivermos um JOIN por exemplo. Usando o SelectBuilder em um Select com JOIN.

query.Select.Add("A.*");
query.TableName = "Categories A";

Agora vamos fazer um pequeno teste para definir se vamos usar um filtro ou não em nosso Select.

if ( ! string.IsNullOrEmpty(CategoryName) )
{
query.Where.Add(new ValuePairItem("CategoryName", "@CategoryName", " LIKE "));
command.AddWithValue("CategoryName", "%" + CategoryName + "%");
}

Sempre que vamos adicionar uma nova condição no nosso WHERE precisamos criar um ValuePairItem, que possui uma "Key", um "Value" e um "Separator" que são respetivamente: o nome do campo, o valor que será usado na condição e o separador que pode ser um " = ", ou " Like " ou qualquer outra comparação permitida no banco configurado.

Você pode ainda adicionar uma ordenação:

query.OrderBy = "Name";

Agora você precisa apenas executar o Command passando o seu SelectBuilder.ToString();

return (DataTable)command.ExecuteQuery(query.ToString(), ReturnType.DataTable);

Pronto!

Last edited Mar 9, 2010 at 2:36 PM by ivanpaulovich, version 1

Comments

No comments yet.