Sandmann 0 Denunciar post Postado Maio 5, 2013 Bom, tenho sistemas todo em Php e html5, com mysql, estou migrando ele todo para ASPX/HTML5, C# e MySQL. Bom gostaria de saber, como faço string de conexão perfeita (que funcione) para C# com mysql?Gostaria de pegar um select (exemplo: Select id from tabelalabel where id=1) e pega o retorno do select e passar para uma variavel ou não, mas mostrar em uma label no lugar do value padrão da label, e não tenho ideia de como fazer... agradeço se tiver ajuda...?? EXEMPLO: O SELECT> string sel = "Select id from tabelalabel where id=1"; conexão conn = nex conexão(sel) string X = conn; label1.settext.parse.tostring(conn); Label sem a conexão do banco de dados: <label1 value="0"> Label com a conexão do banco de dados: <label1 value="Oi sou fulano de tal!"> Bom é isso que quero fazer, é mesma coisa que um usuário tiver o registro, e a hora que ele logar aparecer para ele uma mensagem padrão: if(homen){ bem vindo, <label value="nome"> } else{ bem vinda, <label value="nome"> } Bem vindo, Luiz. Bem vinda, Luiza. Espero que todos tenha entendido, agradeço desde já a ajuda de todos, espero que minha duvida possa ser respondida, pois acredito que seja a duvida de muitos. Bom caso eu encontre a solução, certamente irei postar para satisfazer a duvida de todos. Atenciosamente, Luiz Sandmann. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Maio 6, 2013 Para fazer uma conexão você precisa de objetos de banco de dados, como o SQLDataAdapter ou Datatables, o MySQLCommand é o que será montado em uma conexão, você pode selecionar os registros assim: MySqlConnection con = new MySqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"); MySqlCommand com = new MySqlCommand("Query", con); MySqlDataAdapter da = new MySqlDataAdapter(com); DataTable dt = new DataTable(); con.Open(); da.Fill(dt); string nome = dt.Rows[0]["coluna"].ToString(); con.Close(); Na hora de puxar o nome você pode jogar ou tudo para uma variável global ou então você pode deixar no próprio escopo, mais ou menos assim: MySqlConnection con = new MySqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"); MySqlCommand com = new MySqlCommand("Query", con); MySqlDataAdapter da = new MySqlDataAdapter(com); DataTable dt = new DataTable(); con.Open(); da.Fill(dt); string nome = dt.Rows[0]["coluna"].ToString(); con.Close(); Label1.Text = nome; Lembrando que a label deve ter a propriedade runat="server", caso contrário você não poderá mexer nela. Compartilhar este post Link para o post Compartilhar em outros sites
Sandmann 0 Denunciar post Postado Maio 6, 2013 Para fazer uma conexão você precisa de objetos de banco de dados, como o SQLDataAdapter ou Datatables, o MySQLCommand é o que será montado em uma conexão, você pode selecionar os registros assim: MySqlConnection con = new MySqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"); MySqlCommand com = new MySqlCommand("Query", con); MySqlDataAdapter da = new MySqlDataAdapter(com); DataTable dt = new DataTable(); con.Open(); da.Fill(dt); string nome = dt.Rows[0]["coluna"].ToString(); con.Close(); Na hora de puxar o nome você pode jogar ou tudo para uma variável global ou então você pode deixar no próprio escopo, mais ou menos assim: MySqlConnection con = new MySqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"); MySqlCommand com = new MySqlCommand("Query", con); MySqlDataAdapter da = new MySqlDataAdapter(com); DataTable dt = new DataTable(); con.Open(); da.Fill(dt); string nome = dt.Rows[0]["coluna"].ToString(); con.Close(); Label1.Text = nome; Lembrando que a label deve ter a propriedade runat="server", caso contrário você não poderá mexer nela. O que eu não tinha entendido é porque eu tinha que passa para uma tabela o conteúdo.... string nome = dt.Rows[0]["coluna"].ToString(); Pois tinha achado muitos tutorias, mas todos tinha que passar uma tabela para um variável e não entendi isso, bom agradeço, pois já sei que isso é o correto, mas ainda não sei qual motivo devo passar uma tabela.... Não posso passar so o return da procedure e/ou select para a string nome, e pronto? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Maio 6, 2013 Não obrigatoriamente, você pode trabalhar com datareader poe exemplo que é mais rápido, pois é somente leitura e sempre pra frente. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Sandmann 0 Denunciar post Postado Maio 7, 2013 Bom o código parece dar um erro, o código é esse:Tentei esse primeiro:EM Default.aspx > Default.aspx.csSTRING DA CONEXÃO:-BANCO DE DADOS DE TESTE:mysql.hostinger.com.br;Database=u919913982_teste;Uid=u919913982_teste;Pwd=123456;(ERROR 1) CÓDIGO DO ERRO 1: using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { MySqlConnection con = new MySqlConnection("Server=mysql.hostinger.com.br;Database=u919913982_teste;Uid=u919913982_teste;Pwd=123456;"); MySqlCommand com = new MySqlCommand("SELECT `labeltext` FROM `tabelalabel` WHERE `id'=1", con); MySqlDataAdapter da = new MySqlDataAdapter(com); DataTable dt = new DataTable(); con.Open(); da.Fill(dt); string nome = dt.Rows[0]["coluna"].ToString(); Label1.Text = nome; con.Close(); } } (ERRO 1) FOTO DO ERRO 1: (ERRO 2) CÓDIGO DA SEGUNDA TENTATIVA: using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { MySqlConnection con = new MySqlConnection("Server=mysql.hostinger.com.br;Database=u919913982_teste;Uid=u919913982_teste;Pwd=123456;"); MySqlCommand com = new MySqlCommand("SELECT `labeltext` FROM `tabelalabel` WHERE `id'=1", con); MySqlDataAdapter da = new MySqlDataAdapter(com); DataTable dt = new DataTable(); try { con.Open(); da.Fill(dt); string nome = dt.Rows[0]["coluna"].ToString(); Label1.Text = nome; } catch (Exception ex) { con.Close(); } } } (ERROR 2) FOTO DO ERRO 2: ARQUIVO ASPX: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> <asp:Label ID="Label1" runat="server" Text="Label" runat="server"></asp:Label> </body> </html> (ERRO 3) MENSAGEM DE ERRO: Warning 1 The variable 'ex' is declared but never used C:\Users\##########\Desktop\######\Default.aspx.cs 27 26 ###########(2) BOM TENTEI O CÓDIGO DE DIVERSAS FORMAS, PRECISO DE AJUDA! Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Maio 7, 2013 O erro 1 é porque sua connectionString está errada. O erro 2 eu não consegui ver a mensagem. O erro 3 não é um erro, é um aviso, o programa roda normalmente com ele. É devido a sua variável do catch: [inline]Catch (Exception ex)[/inline] que nunca é usada. Você pode retornar os dados direto do DB sem passar para uma datatable, usando os datareaders como o Quintelab disse, mas se você tiver que jogar esses valores em outros locais, ai de qualquer maneira você precisa do "carro" para movê-los, ai torna-se indispensável o uso de variáveis. De qualquer forma, o seu erro é diretamente em String de conexão, geralmente o server é um IP, procure o dns do mysql lá ou então no phpmyadmin você consegue verificar algumas conexões. Repito: O erro não é com o código, é com a string de conexão. Compartilhar este post Link para o post Compartilhar em outros sites
Sandmann 0 Denunciar post Postado Maio 7, 2013 O erro 1 é porque sua connectionString está errada. O erro 2 eu não consegui ver a mensagem. O erro 3 não é um erro, é um aviso, o programa roda normalmente com ele. É devido a sua variável do catch: [inline]Catch (Exception ex)[/inline] que nunca é usada. Você pode retornar os dados direto do DB sem passar para uma datatable, usando os datareaders como o Quintelab disse, mas se você tiver que jogar esses valores em outros locais, ai de qualquer maneira você precisa do "carro" para movê-los, ai torna-se indispensável o uso de variáveis. De qualquer forma, o seu erro é diretamente em String de conexão, geralmente o server é um IP, procure o dns do mysql lá ou então no phpmyadmin você consegue verificar algumas conexões. Repito: O erro não é com o código, é com a string de conexão. Desculpa, mas não consegui entender o proposito da tb, e como fazer algo citado.... Existe possibilidade do senhor exemplificar? E corrigir a string de conexão se possível? Agradeço desde já sua ajuda. Atenciosamente, Sandmann. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Maio 7, 2013 O propósito da DataTable é mais ou menos o seguinte: Vamos supor que você queira passar estes dados para uma série de campos, então você vai precisar jogar todos os dados obtidos direto em variáveis, ou então você pode simplesmente jogar tudo para uma datatable, que pode servir como um veículo que irá mover toda a sua consulta para outras partes do sistema, ou seja, a datatable é um veículo que você pode utilizar para mover dados de um ponto do sistema a outro, onde você pode atribuir ela como uma variável vetorial que armazena todos os registros que a query retornou. A string de conexão provavelmente está errada no que diz respeito a conexão do servidor, você está usando mysql.hostinger.com.br, porém a conexão de database é geralmente um IP, por exemplo, 50.124.138.500 e com esse servidor determinado ele não está encontrando e conectando o banco. Você deverá procurar no seu host para ver onde está o DB. Compartilhar este post Link para o post Compartilhar em outros sites
Sandmann 0 Denunciar post Postado Maio 7, 2013 O propósito da DataTable é mais ou menos o seguinte: Vamos supor que você queira passar estes dados para uma série de campos, então você vai precisar jogar todos os dados obtidos direto em variáveis, ou então você pode simplesmente jogar tudo para uma datatable, que pode servir como um veículo que irá mover toda a sua consulta para outras partes do sistema, ou seja, a datatable é um veículo que você pode utilizar para mover dados de um ponto do sistema a outro, onde você pode atribuir ela como uma variável vetorial que armazena todos os registros que a query retornou. A string de conexão provavelmente está errada no que diz respeito a conexão do servidor, você está usando mysql.hostinger.com.br, porém a conexão de database é geralmente um IP, por exemplo, 50.124.138.500 e com esse servidor determinado ele não está encontrando e conectando o banco. Você deverá procurar no seu host para ver onde está o DB. Entendi, mas o meu host não oferece um ip o banco de dados, mas sim só esse domínio... Compartilhar este post Link para o post Compartilhar em outros sites