[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