从数据库中获取数据并在gridview中显示(asp.net)

时间:2015-05-04 13:36:38

标签: c# asp.net sql-server gridview webforms

我有一个数据库(SQL服务器)并将其添加到我的网页项目中,但问题是我无法在gridview中显示数据。

这是我的代码:

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();

3 个答案:

答案 0 :(得分:4)

更改此

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

到这个

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

答案 1 :(得分:1)

使用SqlParameters而不是像现在这样操纵字符串 另外,使用using语句正确处理对象 不要使用select *,因为它会影响性能,只选择所需的列 这是您的代码示例,已修改:

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();
    }
}  

答案 2 :(得分:0)

更好地使用SqlDatadapter

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