C# 从返回类型数据集获取输出并在Gridview中显示
我试图从一个返回类型为DataSet的方法中获取输出,并在GridView中使用它,但输出没有反映。 有人能告诉我如何得到输出吗C# 从返回类型数据集获取输出并在Gridview中显示,c#,sql,asp.net,dataset,C#,Sql,Asp.net,Dataset,我试图从一个返回类型为DataSet的方法中获取输出,并在GridView中使用它,但输出没有反映。 有人能告诉我如何得到输出吗 public DataSet GetData() { try { SqlConnection conn = new SqlConnection(connectionString); if (conn.State == ConnectionState.Closed) { conn
public DataSet GetData()
{
try
{
SqlConnection conn = new SqlConnection(connectionString);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
String sql = "Select top 100 * from SEQUENCE";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet output = new DataSet();
adapter.Fill(output);
conn.Close();
return (output);
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, GetType(),
"ServerControlScript", ex.Message, true);
return (null);
}
}
Home home = new Home();
Output=home.GetData();
GridViewOutput.DataSource = Output.Tables["Out"];
GridViewOutput.DataBind();
尝试移动您声明的
输出
并将其返回到的位置,如下所示
我更改了声明网格视图数据源的部分。您应该能够将数据集datasource声明为方法本身
看看dataset vs datatable上的这个线程
一个数据集可以容纳多个表。但是,如果只是返回单个结果集,则使用DataTable而不是DataSet可能更有意义
只需将方法类型更改为DataTable。以如下所示的相同方式声明其来源
public DataSet GetData()
{
//Move where you declare output ot here
DataSet output = new DataSet();
try
{
SqlConnection conn = new SqlConnection(connectionString);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
String sql = "Select top 100 * from SEQUENCE";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(output);
conn.Close();
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, GetType(),
"ServerControlScript", ex.Message, true);
return (null);
}
//And move the return to here
return output;
}
//Should just need this to display the data
GridViewOutput.DataSource = GetData();
GridViewOutput.DataBind();
在c#中使用SQL的最后一件事是,我倾向于使用using
语句。它使代码更加干净,并处理资源的处理,如您所见。如果您选择使用,您的代码将如下所示:
public DataTable GetData()
{
//Move where you declare output ot here
var output = new DataTable();
using (var conn = new SqlConnection())
{
try
{
conn.ConnectionString = //Your DataBase Connection;
String sql = "Select top 100 * from SEQUENCE";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.commandType = commandType.Text;
Var adapter = new SqlDataAdapter(cmd);
adapter.Fill(output);
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, GetType(),
"ServerControlScript", ex.Message, true);
return (null);
}
//And move the return to here
return output;
}
}
//Should just need this to display the data
GridViewOutput.DataSource = GetData();
GridViewOutput.DataBind();