Usuário com melhor resposta
Ajuda com parâmetros TextBox / string

Pergunta
-
Eu tenho esse método onde eu gostaria de trazer o IBGE. Quando eu coloco o TextBox como parâmetro, ele traz normalmente, mas o problema é que estou usando uma Library e não consigo importar o TextBox. Por isso eu substitui o TextBox por uma string, mas dessa forma ele não consegue trazer... Alguem consegue me ajudar?
public bool recuperarIBGE(string Cidade, string IBGE) { conexao = new Conexao(); try { conexao.conectar(); conexao.abrirConexao(); NpgsqlCommand sql = new NpgsqlCommand("SELECT codibge FROM cidade WHERE nome ilike SEM_ACENTO('" + Cidade + "');", conexao.conexao); NpgsqlDataReader dr = sql.ExecuteReader(); while (dr.Read()) { //IBGE.Text = (string)dr["codibge"].ToString(); IBGE = (string)dr["codibge"].ToString(); retorno = true; } conexao.fecharConexao(); } catch (Exception erro) { throw erro; } return retorno; }
Respostas
-
Boa tarde, tem duas formas de retornar o que você quer.
1) trocar o retorno da função para String
2) adicionar out na propriedade IBGE
Seguem os modelos abaixo.
Exemplo 1
public string recuperarIBGE(string Cidade) { conexao = new Conexao(); string retorno = string.Empty; try { conexao.conectar(); conexao.abrirConexao(); NpgsqlCommand sql = new NpgsqlCommand("SELECT codibge FROM cidade WHERE nome ilike SEM_ACENTO('" + Cidade + "');", conexao.conexao); NpgsqlDataReader dr = sql.ExecuteReader(); while (dr.Read()) { //IBGE.Text = (string)dr["codibge"].ToString(); retorno = (string)dr["codibge"].ToString(); } conexao.fecharConexao(); } catch (Exception erro) { throw erro; } return retorno; } //Uso da função textBox.Text = recuperarIBGE("Cidade");
Exemplo 2
public bool recuperarIBGE(string Cidade, out string IBGE) { conexao = new Conexao(); IBGE = string.Empty; try { conexao.conectar(); conexao.abrirConexao(); NpgsqlCommand sql = new NpgsqlCommand("SELECT codibge FROM cidade WHERE nome ilike SEM_ACENTO('" + Cidade + "');", conexao.conexao); NpgsqlDataReader dr = sql.ExecuteReader(); while (dr.Read()) { //IBGE.Text = (string)dr["codibge"].ToString(); IBGE = (string)dr["codibge"].ToString(); retorno = true; } conexao.fecharConexao(); } catch (Exception erro) { throw erro; } return retorno; } //Uso da função string codigoIBGE = string.Empty; if(recuperarIBGE("Cidade", out codigoIBGE)) { textBox.Text = codigoIBGE; }
Gilson Joanelo - Desenvolvedor Web
- Marcado como Resposta EmersonJau terça-feira, 4 de agosto de 2015 10:40
Todas as Respostas
-
-
-
Boa tarde, tem duas formas de retornar o que você quer.
1) trocar o retorno da função para String
2) adicionar out na propriedade IBGE
Seguem os modelos abaixo.
Exemplo 1
public string recuperarIBGE(string Cidade) { conexao = new Conexao(); string retorno = string.Empty; try { conexao.conectar(); conexao.abrirConexao(); NpgsqlCommand sql = new NpgsqlCommand("SELECT codibge FROM cidade WHERE nome ilike SEM_ACENTO('" + Cidade + "');", conexao.conexao); NpgsqlDataReader dr = sql.ExecuteReader(); while (dr.Read()) { //IBGE.Text = (string)dr["codibge"].ToString(); retorno = (string)dr["codibge"].ToString(); } conexao.fecharConexao(); } catch (Exception erro) { throw erro; } return retorno; } //Uso da função textBox.Text = recuperarIBGE("Cidade");
Exemplo 2
public bool recuperarIBGE(string Cidade, out string IBGE) { conexao = new Conexao(); IBGE = string.Empty; try { conexao.conectar(); conexao.abrirConexao(); NpgsqlCommand sql = new NpgsqlCommand("SELECT codibge FROM cidade WHERE nome ilike SEM_ACENTO('" + Cidade + "');", conexao.conexao); NpgsqlDataReader dr = sql.ExecuteReader(); while (dr.Read()) { //IBGE.Text = (string)dr["codibge"].ToString(); IBGE = (string)dr["codibge"].ToString(); retorno = true; } conexao.fecharConexao(); } catch (Exception erro) { throw erro; } return retorno; } //Uso da função string codigoIBGE = string.Empty; if(recuperarIBGE("Cidade", out codigoIBGE)) { textBox.Text = codigoIBGE; }
Gilson Joanelo - Desenvolvedor Web
- Marcado como Resposta EmersonJau terça-feira, 4 de agosto de 2015 10:40
-
ficaria no mesmo arquivo do form que contém o textBox.
você criaria assim:
String ^ Texto = textBox1->Text;
Para poder converter para string normal deve adicionar esses métodos:
void MarshalString(String ^ s, string& os) { using namespace Runtime::InteropServices; const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer(); os = chars; Marshal::FreeHGlobal(IntPtr((void*)chars)); } void MarshalString(String ^ s, wstring& os) { using namespace Runtime::InteropServices; const wchar_t* chars = (const wchar_t*)(Marshal::StringToHGlobalUni(s)).ToPointer(); os = chars; Marshal::FreeHGlobal(IntPtr((void*)chars)); }
Ai é só chamar passando os argumentos:
MarshalString(Texto, NovoTexto);