CHAMAR FUNCAO

ARNALDOCRUZ 13/09/2011 11:27:28
#384118
colegas bom dia

eu coloquei esta função abaixo em uma classe
como eu faço pra chama esta função de qualquer parte do sistema ?

Obigado

public ConexaoFB()
{

string arquivo = [Ô]C:\\PASTA\\ARQUIVO.TXT[Ô];
if (File.Exists(arquivo))
{
StreamReader sr = new StreamReader([Ô]C:\\C:\\PASTA\\ARQUIVO.TXT[Ô]);
String linha;
while ((linha = sr.ReadLine()) != null)
{
VL += 1;
if (VL == 1)
{
Computador = linha;
}
if (VL == 2)
{
IP = linha;
}
if (VL == 3)
{
Caminho = linha;
}
sr.Close();
}
string nome = Environment.MachineName;
nome = nome.ToUpper();
Computador = Computador.ToUpper();
if (nome == Computador)
{
try
{
comC = Caminho;
string s = [Ô]User=SYSDBA;Password=masterkey;Database=[Ô] + comC + [Ô];DIALECT=3[Ô];
FCnn = new FbConnection();
FCnn.Open();
Conectado = true;
}
catch
{
Conectado = false ;
}
}
else
{
try
{
comC = IP + [Ô]:[Ô] + Caminho;
string s = [Ô]User=SYSDBA;Password=masterkey;Database=[Ô] + comC + [Ô];DIALECT=3[Ô];
FCnn = new FbConnection();
FCnn.Open();
Conectado = true;
}
catch
{
Conectado = false;
}
}
}
else
{
Conectado = false;
Environment.Exit(0);
}
}
}
KERPLUNK 13/09/2011 11:28:59
#384119
NomeDaSuaClasse variavel = new NomeDaSuaClasse();
variavel.ConexaoFB();
ARNALDOCRUZ 13/09/2011 11:37:13
#384120
não entendi ???
KERPLUNK 13/09/2011 11:53:07
#384122
Qual o nome da sua classe?
ARNALDOCRUZ 13/09/2011 13:05:24
#384133
olha ela ai completa, Tô perdidaço

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FirebirdSql.Data.FirebirdClient;
using System.IO;

namespace CadastroC
{
class ConectaFire
{
public static string comC = [Ô][Ô];
public static string shostname = [Ô][Ô];
public static string EmpresaOrigem = [Ô]TATA MOTOS[Ô];
public FbConnection FCnn = new FbConnection();
public FbCommand Fcmd1 = new FbCommand();
//public FbDataReader FR1 = new FbDataReader;
public static Boolean Conectado = false;
public static string Resultado = [Ô][Ô];
public static string UsuarioLogado = [Ô][Ô];
public static string Zeros = [Ô]0[Ô];
public static string UMS = [Ô]1[Ô];
public static string DOIS = [Ô]2[Ô];
public static string TRES = [Ô]3[Ô];
public static string VAZ = [Ô][Ô];
public static string IPREDE = [Ô][Ô];
public static string IPM = [Ô][Ô];
public static string Computador = [Ô][Ô];
public static string IP = [Ô][Ô];
public static string Caminho = [Ô][Ô];
public static int VL = 0;

//NomeDaSuaClasse variavel = new NomeDaSuaClasse();
//variavel.ConexaoFB();
public ConexaoFB()
{
string arquivo = [Ô]C:\\JCMERCAFRIOS\\CONFIG.DLL[Ô];
if (File.Exists(arquivo))
{
StreamReader sr = new StreamReader([Ô]C:\\JCMERCAFRIOS\\CONFIG.DLL[Ô]);
String linha;
while ((linha = sr.ReadLine()) != null)
{
VL += 1;
if (VL == 1)
{
Computador = linha;
}
if (VL == 2)
{
IP = linha;
}
if (VL == 3)
{
Caminho = linha;
}
sr.Close();
}
string nome = Environment.MachineName;
nome = nome.ToUpper();
Computador = Computador.ToUpper();
if (nome == Computador)
{
try
{
comC = Caminho;
string s = [Ô]User=SYSDBA;Password=masterkey;Database=[Ô] + comC + [Ô];DIALECT=3[Ô];
FCnn = new FbConnection();
FCnn.Open();
Conectado = true;
}
catch
{
Conectado = false ;
}
}
else
{
try
{
comC = IP + [Ô]:[Ô] + Caminho;
string s = [Ô]User=SYSDBA;Password=masterkey;Database=[Ô] + comC + [Ô];DIALECT=3[Ô];
FCnn = new FbConnection();
FCnn.Open();
Conectado = true;
return Conectado;
}
catch
{
Conectado = false;
}
}
}
else
{
Conectado = false;
Environment.Exit(0);
}
}
}
}
ASHKATCHUP 13/09/2011 13:39:04
#384135
Como tu não criou a classe como STATIC, tu vai ter que instanciar um objeto dela.


ConectaFire x = new ConectaFire();
x.ConexaoFB();

KERPLUNK 13/09/2011 13:42:40
#384138
Resposta escolhida
CadastroC.ConectaFire variavel = new CadastroC.ConectaFire();
variavel.ConexaoFB();
if (variavel.Conectado)
{
FbConnection cn = variavel.FCnn;
if (cn.State == Open) //Verificar aqui a constante para Firebird referente ao estado [Ô]Open[Ô]
FbCommand cmd = new FbCommand();
cmd.Connection = cn;
cmd.CommandText = [Ô]Select * from minha tabela[Ô];

FbDataReader dr = cmd.ExecuteReader();
int codigo;
while (dr.Read())
{
codigo = dr.GetInt32(dr.GetOrdinal([Ô]Codigo[Ô]));
}
dr.Close();
}
ARNALDOCRUZ 13/09/2011 18:08:19
#384166
Colegas estou perdido
aqui --- public ConexaoFB() está sublinhado de vermelho com a seguinte mensagem de erro

METHOD MUST HAVE A RETURN TYPE

coloquei assim --->>public void ConexaoFB() ---> sumiu o erro

porem quando chamo conforme indicado por vocês da erro, se deixo do jeito que está não funfa tambem

já tô ficando maluco

a ideia é bem simples


1 - quando abrir o sistema verificar se existe o arquivo de configuração
2 - se existir faz a leituta e abre a conexão
3 - se não existir abre um input box onde o usuario digita o nome do computador servidor
4 - cria-se o arquivo de configuração
5 - faz a conexão

quero chama a conexão e que retorne true para conexão com sucesso ou false para sem conexão

estou já a 3 dias pra fazer isso e estou esbarrando nesta função





ASHKATCHUP 13/09/2011 18:25:41
#384168
Se você quer retornar se funcionou ou não, defina a função como boolean


public bool Teste
{
}


Se não quer retorno, defina ela como void


Public void Teste
{
}
ARNALDOCRUZ 13/09/2011 19:17:13
#384174
colegas funcionou legal com as dicas do ASHKATCHUP E DO KERPLUNK funcionou legal

agora ASHKATCHUP esta ultima dica não funfou


fiz assim

public bool ConexaoFB()
{
return true;

else
}
return false;
{
}

porem a chamada não consegui fazer


Outro problema

O banco está aberto com a conexão, qdo eu fecho o formulário quero fechar a conexão

como eu faço para fechar a conexão

tipo no net ao declarar Public FCnn As FbConnection = New FbConnection

fica disponivel em qualquer parte do form já no C# não aparece para que eu possa

FCnn.close;
FCnn.dispose


colegas talvez meu conceito pode está errado

a intenção seria abrir a conexão ao abrir o formulario e fechar a conexão ao fechar o formulario

este conceito pode ser aplicado no C# ?


Obrigado e desculpa a chateação estou aprendendo C#


ASHKATCHUP 13/09/2011 23:25:45
#384191
-> Arnaldo, teu problema é de lógica de programação! Olha o código que tu postou acima


public bool ConexaoFB()
{
return true;

else
}
return false;
{
}


Em QUALQUER linguagem, o comando ELSE termina uma expressão IF. Cade o IF para ter o ELSE?

Além disso, tu ainda não entendeu a disposição das chaves no C# e sua sintaxe.
Cada comando de encapsulamento possui um par de chaves, uma abre, outra fecha. Exemplo;



If (1==1)
{
}


Está vendo? Duas chaves: uma abre, outra fecha. Agora, se neste IF tivéssemos um ELSE, haveria OUTRO par de chaves


if (1==1)
{
}
else
{
}





-> Você pode fechar a conexão no evento Form_Closed


private void frmInicial_FormClosed(object sender, FormClosedEventArgs e)
{

}

Tópico encerrado , respostas não são mais permitidas