Erro ao vincular componente dataGridView
Bom dia pessoal,
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
Obrigado mais uma vez!
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
Curtidas 0
Respostas
Bruno
18/09/2013
Desculpe pela dúvida, acho que não fui claro.
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!
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!
GOSTEI 0
Joel Rodrigues
18/09/2013
Alguma coisa lhe impede de apenas atribuir o retorno da consulta ao DataGridView? É realmente preciso criar uma lista e adicionar as colunas dinamicamente?
GOSTEI 0
Bruno
18/09/2013
Então pensei em algo assim:
[url]https://docs.google.com/document/d/1J-3_XmD5tMUj_SF37WkQSM0yzK96URBGayYuQM9TD3o/pub[/url]
[url]https://docs.google.com/document/d/1J-3_XmD5tMUj_SF37WkQSM0yzK96URBGayYuQM9TD3o/pub[/url]
GOSTEI 0
Joel Rodrigues
18/09/2013
Sim, sim, tudo bem. Mas você pode configurara essas colunas em tempo de design e apenas associar o retorno da consulta ao DataGridView.
GOSTEI 0
Bruno
18/09/2013
Eu acabei adaptando o código para ele listar o resultado no DataGridView assim que o usuário for digitando no campo de busca, ou seja, removi o botão procurar.
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).
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"];
}
}GOSTEI 0
Joel Rodrigues
18/09/2013
A string de conexão que você estava utilizando não funciona?
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].
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].
GOSTEI 0
Bruno
18/09/2013
Entendi. Tem como eu saber o endereço do servidor (DATA SOURCE) pelo SQL Server? Não encontrei esta informação.
"Password=mbm;Persist Security Info=True;User ID=sa;Initial Catalog=modelo_redex;Data Source=??? \\SQLEXPRESS"
"Password=mbm;Persist Security Info=True;User ID=sa;Initial Catalog=modelo_redex;Data Source=??? \\SQLEXPRESS"
GOSTEI 0
Joel Rodrigues
18/09/2013
Quando você conecta no SQL Server Management Studio, não tem uma tela de login (Connect to Server)? Ali você já vê o nome do servidor (Server name).
GOSTEI 0
Bruno
18/09/2013
Beleza, pode concluir o tópico.
Agradeço mais uma vez cara!
Agradeço mais uma vez cara!
GOSTEI 0
Joel Rodrigues
18/09/2013
Opa, que bom que pude ajudar de alguma forma, fico feliz.
Quando precisa, fique à vontade para abrir novos tópicos.
Tópico concluído.
Quando precisa, fique à vontade para abrir novos tópicos.
Tópico concluído.
GOSTEI 0