Получение вывода из возвращаемого типа DataSet и отображение его в Gridview - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь получить вывод из метода с типом возвращаемого значения в качестве 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();

1 Ответ

0 голосов
/ 03 сентября 2018

Попробуйте переместиться туда, где вы объявили output и вернули его, как показано ниже.

Я изменил часть, в которой вы объявляете источник данных видов сетки. Вы должны иметь возможность просто объявить источник данных наборов данных как сам метод.

Посмотрите на эту тему: набор данных и набор данных набор данных и набор данных DataSet может содержать несколько таблиц. Однако, если вы просто возвращаете один набор результатов, DataTable, а не DataSet, вероятно, будет иметь больше смысла.

Просто измените тип Methods на 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();

И последнее: при использовании SQL в c # я склоняюсь к использованию оператора using. Это делает код намного чище и управляет размещением ресурсов для вас. Когда я должен использовать Statement 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...