Erro ao vincular componente dataGridView
18/09/2013
0
Alguém poderia me ajudar a resolver o problema que está ocorrendo no código abaixo?
A ideia é inserir os dados em um datagrid assim que o usuário informa um valor no campo de busca. Mas neste método ele está reclamando de dois comandos:
1) grdExpenses.Columns.Add(sqldr.GetName(i).ToString(), sqldr.GetName(i).ToString()); //ERRO: No overload for method ''Add'' takes ''2'' arguments
2) grdExpenses.Rows.Add(linhaDados); //ERRO: ''System.Web.UI.WebControls.GridViewRowCollection'' does not contain a definition for ''Add'' and no extension method ''Add'' accepting a first argument of type ''System.Web.UI.WebControls.GridViewRowCollection'' could be found
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++) { grdExpenses.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(); } } grdExpenses.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(); } }
Obrigado mais uma vez!
Bruno
Posts
19/09/2013
Bruno
Resumindo o que realmente estou pensando:
Assim que o usuário informar dados no campo de busca, dados contidos no BD SQL Server, ele retorna a pesquisa em um componente DATAGRIDVIEW.
Não estou conseguindo deixar nesse formato, se alguém puder me ajudar, agradeço muito!
19/09/2013
Joel Rodrigues
19/09/2013
Bruno
[url]https://docs.google.com/document/d/1J-3_XmD5tMUj_SF37WkQSM0yzK96URBGayYuQM9TD3o/pub[/url]
20/09/2013
Joel Rodrigues
20/09/2013
Bruno
Segue o código abaixo. A única dúvida agora é com relação a string de conexão para acessar o BD (SQL Server 2005).
protected void TextBox2_TextChanged(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(O QUE COLOCAR); //Separado string strSelect = "SELECT * FROM exp_expenses_details WHERE expense_id LIKE (@expense_id)"; using (SqlConnection conn = new SqlConnection(SuaStringDeConexão)) { SqlDataAdapter da = new SqlDataAdapter(strSelect, conn); da.SelectCommand.Parameters.AddWithValue("@expense_id", TextBox2.Text + "%"); DataSet ds = new DataSet(); da.Fill(ds, "exp_expenses_details"); grdExpenses.DataSource = ds.Tables["exp_expenses_details"]; } }
20/09/2013
Joel Rodrigues
Você precisa saber o nome/IP do servidor, o nome do banco e se vai acessar com usuário e senha ou com o usuário do Windows.
Neste site você encontra várias strings de conexão, inclusive de outros bancos, provavelmente vai encontrar aí o que precisa: [url]http://www.connectionstrings.com/sql-server/[/url].
20/09/2013
Bruno
"Password=mbm;Persist Security Info=True;User ID=sa;Initial Catalog=modelo_redex;Data Source=??? \\SQLEXPRESS"
20/09/2013
Joel Rodrigues
20/09/2013
Joel Rodrigues
Quando precisa, fique à vontade para abrir novos tópicos.
Tópico concluído.
Clique aqui para fazer login e interagir na Comunidade :)