Criar caixa de texto sem método messageBox do System.Windows.Form
16/09/2013
0
É possível criar uma caixa de texto sem o método messageBox. Há outra alternativa?
O motivo é que estou usando a biblioteca System.Web.UI.WebControls e quando coloco System.Windows.Form ocorre ambiguidade.
Obrigado,
Bruno
Bruno
Posts
16/09/2013
Joel Rodrigues
16/09/2013
Bruno
Eu pesquisei sobre a função ALERT, mas no caso de .Net para C# eu poderia estar utilizando esta mesma função?
16/09/2013
Joel Rodrigues
17/09/2013
Bruno
Eu alterei o método de busca de dados no SQL Server em .Net para o que está neste código abaixo:
private void btnProcurar_Click(object sender, EventArgs e) { //define os objetos DataReader, Connection e Command SqlDataReader sqldr = null; SqlConnection con = null; SqlCommand cmd = null; try { // Abre a conexão com o banco de dados Northwind no SQL Server 2005 Express // .\SQLExpress é o nome default do servidor // initial Catalog - indica o banco de dados // String usando Windows Authentication (Trusted Connection): string ConnectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI"; con = new SqlConnection(ConnectionString); con.Open(); // define um comando para selecionar os produtos e preços da tabela products string CommandText = "SELECT ProductName,UnitPrice " + "FROM Products " + "WHERE (ProductName LIKE @criterio)"; //associa comando a conexão cmd = new SqlCommand(CommandText); cmd.Connection = con; // Define o parâmetro @criterio e seu tipo de dados cmd.Parameters.Add( new SqlParameter( "@criterio", // o nome do parametro System.Data.SqlDbType.NVarChar, // o tipo de dado SqlDbType 40, // o tamanho do parametro "ProductName")); // o nome da coluna na tabela a qual se aplica // Preenche o valor do parâmetro com o texto informado // na caixa de texto : txtcriterio cmd.Parameters["@criterio"].Value = txtcriterio.Text+"%"; // executa a consulta sqldr = cmd.ExecuteReader(); lbDados.Items.Clear(); // preenche o listBox com os valores retornados // usa o método read() para percorrer o datareader while (sqldr.Read()) { lbDados.Items.Add(sqldr["ProductName"].ToString() + " - " + sqldr["UnitPrice"].ToString()); } } catch (Exception ex) { // exibe mensagem de erro MessageBox.Show(ex.Message); } finally { // fecha o data reader e a conexão if (sqldr != null) sqldr.Close(); if (con.State == ConnectionState.Open) con.Close(); } }
Minha dúvida é como coloco as informações recuperadas em um DataGridView. Pois está dando erro de compilação na variável lbDados após executar a consulta.
Obrigado!
17/09/2013
Joel Rodrigues
(nunca deixe de dizer qual é o erro, pois "dá um erro" fica muito genérico)
17/09/2013
Bruno
Erro: The name 'lbDados' does not exist in the current context
17/09/2013
Bruno
O único problema agora é que a variável dataGridView1 não existe e não sei se coloco como variável local ou global. Alguém poderia me ajudar (segue o código abaixo)?
protected void Button1_Click(object sender, EventArgs e) { SqlDataReader sqldr = null; SqlConnection con = null; SqlCommand cmd = null; try { string ConnectionString = "Data Source=SIDI06;Initial Catalog=dbIntranetAdm;Integrated Security=SSPI"; con = new SqlConnection(ConnectionString); con.Open(); string CommandText = "SELECT * " + "FROM exp_expenses_details " + "WHERE (expense_id LIKE @criterio)"; cmd = new SqlCommand(CommandText); cmd.Connection = con; cmd.Parameters.Add( new SqlParameter( "@criterio", System.Data.SqlDbType.NVarChar, 40, "expense_id")); cmd.Parameters["@criterio"].Value = TextBox4.Text + "%"; sqldr = cmd.ExecuteReader(); //lbDados.Items.Clear(); int nColunas = sqldr.FieldCount; for (int i = 0; i < nColunas; i++) { dataGridView1.Columns.Add(sqldr.GetName(i).ToString(), sqldr.GetName(i).ToString()); } string[] linhaDados = new string[nColunas]; while (sqldr.Read()) { //lbDados.Items.Add(sqldr["expense_id"].ToString()); for (int a = 0; a < nColunas; a++) { if (sqldr.GetFieldType(a).ToString() == "System.Int32") { linhaDados[a] = sqldr.GetInt32(a).ToString(); } if (sqldr.GetFieldType(a).ToString() == "System.String") { linhaDados[a] = sqldr.GetString(a).ToString(); } if (sqldr.GetFieldType(a).ToString() == "System.DateTime") { linhaDados[a] = sqldr.GetDateTime(a).ToString(); } } dataGridView1.Rows.Add(linhaDados); } } catch (Exception ex) { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "sua-mensagem", "alert('Informe um número a procurar')", true); } finally { if (sqldr != null) sqldr.Close(); if (con.State == ConnectionState.Open) con.Close(); } }
17/09/2013
Joel Rodrigues
18/09/2013
Bruno
Nesse caso, teria que declarar como global, certo?
18/09/2013
Joel Rodrigues
Clique aqui para fazer login e interagir na Comunidade :)