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

时间:2022-01-01 21:01:54

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.

我有一个数据库(SQL服务器),我把它添加到我的网页项目,但问题是我无法在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();

3 个解决方案

#1


4  

Change this

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

to this

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

#2


1  

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:

正如您现在所做的那样,使用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();
    }
}  

#3


0  

better use SqlDatadapter:

更好地使用SqlDatadapter:

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

#1


4  

Change this

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

to this

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

#2


1  

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:

正如您现在所做的那样,使用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();
    }
}  

#3


0  

better use SqlDatadapter:

更好地使用SqlDatadapter:

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