C# 从返回类型数据集获取输出并在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

我试图从一个返回类型为DataSet的方法中获取输出,并在GridView中使用它,但输出没有反映。 有人能告诉我如何得到输出吗

  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();