[firebase-br] Conexão com firebird e C#?

Felipe Oriani fboriani em gmail.com
Sex Fev 13 20:30:08 -03 2009


Fala Marcelo,  tente remover o execute procedure, fazendo da seguinte forma:

FbConnection connection = new FbConnection(connectionString);
FbCommand command = new FbCommand("sp_select_data");
command.CommandType = CommandType.StoredProcedure;
FbDataReader reader = command.ExecuteReader();
while(reader.Read)
{
	...
}
reader.Close();
connection.Close();


Fonte:
http://www.firebirdsql.org/index.php?op=devel&sub=netprovider&id=features

Caso não funcione, verifique se você configurou corretamente os parametros
de OutPut da sua Store Procedure... e você pode tentar seta-los em seu
Command apontando a propriedade Direction para Output ... não tenho certeza
se irá funcionar...

Caso ainda não funcione, provavelmente você terá que fazer um select em sua
procedure para resgata-la com um FbDataReader ou com o FbDAtaAdapter (para
preencher DataTable)...

Se ainda não resolver... eu faria uma select simples setando o CommandType
para Text, e resolveria...


Espero que ajude
[]'s



2009/2/13 Marcelo Guilherme Tamanini <marcelo_tamanini em hotmail.com>

>  Blz Felipe, será que vc pode me ajudar nessa outra dúvida?
>
>
> Estou com mais um problema para executar uma procedure em C#, estou tentando receber todos os usuários cadastrados, através da seguinte procedure:
> begin
>   FOR SELECT CodUsuario, Usuario, Senha
>   FROM TB_Usuario
>   WHERE Usuario <> 'Admin'
>   INTO :CodUsuario, :Usuario, :Senha
>   DO
>   suspend;
> end
>
> Eu já testei a procedure e está me retornando os registros normalmente.
>
>
> E no código em C# utilizo o DataAdapter:
> DataTable dtbUsuario = new DataTable();
>
> FbDataAdapter fdaUsuario = new FbDataAdapter("EXECUTE PROCEDURE STP_ListaUsuario", Dados.StringDeConexao);
>
> fdaUsuario.Fill(dtbUsuario);
>
> return dtbUsuario;
>
> No fim, não gera nenhum erro, mas também não me traz nenhum registro!
>
> Outra forma que eu fiz em C# foi utilizando o ExecuteReader(), mas tb não me trouxe nada, assim como não gerou erro:
>     FbCommand fcmUsuario = new FbCommand("EXECUTE PROCEDURE STP_ListaUsuario", fcnUsuario);
>     fcmUsuario.CommandType = CommandType.StoredProcedure;
>     List<Usuario> listaUsuario = new List<Usuario>();
>     FbDataReader fdrUsuario;
>     Usuario usuario;
>
>     try
>     {
>             fcnUsuario.Open();
>             fdrUsuario = fcmUsuario.ExecuteReader();
>
>             while (fdrUsuario.Read() == true)
>             {
>                 usuario = new Usuario();
>                 usuario.Codigo = Convert.ToInt32(fdrUsuario["CodUsuario"]);
>                 usuario.Nome = Convert.ToString(fdrUsuario["Usuario"]);
>                 usuario.Senha = Convert.ToString(fdrUsuario["Senha"]);
>
>                 listaUsuario.Add(usuario);
>             }
>             fdrUsuario.Close();
>
> O que eu estou fazendo de errado agora?
>
>
>
>
>
> ------------------------------
> Explore the seven wonders of the world Learn more!<http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE>
>



-- 
______________________________________
Felipe B. Oriani
email: fboriani em gmail.com
www.felipeoriani.com.br



Mais detalhes sobre a lista de discussão lista