当前位置:编程学习 > C#/ASP.NET >>

GRIDVIEW显示查询结果

我想用GRIDVIEW显示数据库查询的结果,但是发现GRIDVIEW在设计界面如果绑定的数据源,就不能显示查询结果。
所以,我用如下代码
        SqlDataReader thisreader = thiscommand.ExecuteReader();
        GridView1.DataSource = thisreader;
        GridView1.DataBind();
绑定数据源,但是为什么GRIDVIEW不显示呢?

我的想法有问题吗,有没有在设计界面绑定数据源后仍可显示查询结果的方法? --------------------编程问答-------------------- 有没有在设计界面绑定数据源后仍可显示查询结果的方法?
==========
使用SqlDataSource 吧 --------------------编程问答-------------------- 这倒没试过,一般用DataTable or DataSet --------------------编程问答-------------------- 不能用DataReader,要用DataSet.
给你个DataReader转化成DataSet的方法。具体做法如下:
		/// <summary>
/// datareader to datatable
/// </summary>
/// <param name="reader"></param>
/// <returns></returns>
public static DataTable ConvertDataReaderToDataTable(IDataReader reader)
{
DataTable objDataTable = new DataTable();
int intFieldCount = reader.FieldCount;
for (int intCounter = 0; intCounter < intFieldCount; ++intCounter)
        
{
objDataTable.Columns.Add(reader.GetName(intCounter), reader.GetFieldType(intCounter));
}

objDataTable.BeginLoadData();
           
object[] objValues = new object[intFieldCount];
while (reader.Read())
           
{
reader.GetValues(objValues);
objDataTable.LoadDataRow(objValues, true);
}
reader.Close();
objDataTable.EndLoadData() ;
return objDataTable;
}

然后你的代码改一下
SqlDataReader thisreader = thiscommand.ExecuteReader(); 
        GridView1.DataSource = ConvertDataReaderToDataTable(thisreader); 
        GridView1.DataBind(); 

--------------------编程问答--------------------

//用上下面这个方法应该就可以了
while (reader.Read())    
{
}
--------------------编程问答-------------------- 补充一下:下面这种方法也可以

// 创建连接对象

        SqlConnection conn = new SqlConnection(connectionString);
        // 创建命令对象
        SqlCommand command = new SqlCommand(commandString);
        // 打开连接
        try
        {

            // 打开连接
            conn.Open(  );
            // 为命令对象附加连接
            command.Connection = conn;
            // 获取Data Reader
            SqlDataReader reader = command.ExecuteReader();
            // 绑定到GridView
            GridView1.DataSource = reader;
            GridView1.DataBind(  );
        }
        finally
        {
            conn.Close(  );   // 关闭连接
         }

如果还是显示不出数据,那就是没有符合条件的数据。 --------------------编程问答-------------------- 第一次根据企业名称查询,在gridview中显示查询结果;第二次根据企业名称查询,在gridview中显示第一次和第二次的查询结果,依次类推。
这样该怎么实现呢? --------------------编程问答-------------------- 学习
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,