gpt4 book ai didi

c# - 如何使用来自 sql 的表数据填充 gridview

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:24 27 4
gpt4 key购买 nike

我想用来自 SQL 的表数据填充一个 gridview。我尝试只返回我的 SqlDataReader 对象并将其用作我的数据源,但我收到读取器已关闭的错误。我想将其转换为 DataSet 并只返回一个数据集,但我找不到将行数据转换为数据集的简单方法。我还读到 DataSets 在 .NET 3.5/4.0 中已死,这是真的吗?

这是我的数据层方法。如果我能返回一些可用作数据源的东西,那就太棒了:

public SqlDataReader GetSites()
{
SqlConnection sqlCon = null;
SqlDataReader rdr = null;
try
{
sqlCon = new SqlConnection(StoredProcedures.conString);
sqlCon.Open();
SqlCommand cmd = new SqlCommand("GetSites", sqlCon);
cmd.CommandType = CommandType.StoredProcedure;
rdr = cmd.ExecuteReader();
return rdr;
}
finally
{
if (sqlCon != null)
{
sqlCon.Close();
}
//if (rdr != null)
//{
// rdr.Close();
//}
}
}

最佳答案

正如 Carlos Munoz 所说,您关闭了 SQL 连接。您需要打开 SQL 连接才能让读者阅读。简单的注释掉

if (sqlCon != null)
{
sqlCon.Close();
}

你应该没问题。

另一种选择是使用我更喜欢的 SqlDataAdapter。

这是一个例子...

public static DataSet GetDataSet(string sql, DatabaseType database)
{
using ( var connection = new SqlConnection( GetConnectionString(database) ) )
{
using (var adapter = new SqlDataAdapter(sql, connection))
{
var temp = new DataSet();
adapter.Fill(temp);
return temp;
}
}
}

只需将数据网格的数据源设置为返回的数据集的表即可。

DGV.DataSource = DatabaseFunction.GetDataSet(sql, DatabaseType.Outage).Tables[0].DefaultView;

关于c# - 如何使用来自 sql 的表数据填充 gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3677608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com