简体   繁体   中英

get data from database and display it in gridview (asp.net)

I have a database (SQL server) and I added it into my webpage project but the problem is I cannot display the data in a gridview .

Here is my code:

string query;
SqlCommand SqlCommand;
SqlDataReader reader;
int sindex=DropDownList1.SelectedIndex+1;
int hindex =DropDownList3.SelectedIndex+1;
SqlDataAdapter adapter = new SqlDataAdapter();
//Open the connection to db
conn.Open();                
query = string.Format("select * from table where clumn='"+s+"' ", s);
SqlCommand = new SqlCommand(query, conn);
adapter.SelectCommand = new SqlCommand(query, conn);              
reader = SqlCommand.ExecuteReader();               
GridView2.DataSource = reader;
GridView2.DataBind();

Change this

query = string.Format("select * from table where clumn='"+s+"' ", s);

to this

query = string.Format("select * from table where clumn='{0}' ", s);

Use SqlParameters instead of manipulating a string as you are doing now.
Also, use using statement to dispose objects correctly.
Don't use select * because it will affect performance, only select the columns needed.
Here an example of your code, modified:

using (SqlConnection conn = new SqlConnection(yourConnectionString))
{
    SqlCommand command = new SqlCommand();
    command.Connection = conn;
    command.CommandType = CommandType.Text;
    command.CommandText = "select column, column2 from table where column=@column";

    command.Parameters.Add(new SqlParameter("column", SqlDbType.VarChar, 50));
    command.Parameters["column"].Value = yourColumnValue;

    conn.Open();

    using (SqlDataReader sdr = sco.ExecuteReader())
    {
        GridView2.DataSource = sdr;
        GridView2.DataBind();
    }
}  

better use SqlDatadapter :

  DataTable dt = new DataTable();
 ...
using (SqlDataAdapter a = new SqlDataAdapter( new SqlCommand(query, conn)))
                  {
                      GridView2.DataSource =a.Fill(dt).AsDataView();
                  }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM