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