sudhakarthikeyan Ответов: 1

Используя цикл я показываю запись


В таблице запишите следующее


CourseCode    CoruseName     Studentid    City
   RM          Remunration     45555        1
   REO         Revalidation    88787        1
   CTF         Tanker          98889        1
   ECDIS       Practical       88877        1
   AMOS        Manual          78798        1
   DFC         Familarazation  87899        2



я показываю вышеприведенные данные в Gridview. код выглядит следующим образом

string Con= "Server=(local);initial catalog=Testing;Trusted_Connection=True";
SqlConnection sqlcon= new SqlConnection(Con);
SqlCommand cmd = new SqlCommand();
SqlDataReader dr;
cmd.CommandText = "select * from Course";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlcon;
             sqlcon.Open();
             dr= cmd.ExecuteReader();
             if (dr.HasRows)
             {
                 if (reader.Read())
                 {
                     string City = dr[6].ToString();
                     if (City== "1") ;
                    {
                      Griview.Datasource = dr;
                      Gridview.databind();
                    }
                  }
             }





я проверяю, означает ли это город 1. этот город 1 вся запись будет отображаться в gridview.

Когда я выполняю приведенный выше код в GridView выводится следующим образом

CourseCode    CoruseName     Studentid    City

  RM          Remunration     45555        1


в приведенном выше gridview отображается только первая запись. Но не все записи в таблице не отображаются.


Но я хочу, чтобы вывод в Gridview был следующим


CourseCode    CoruseName     Studentid    City
    RM          Remunration     45555        1
    REO         Revalidation    88787        1
    CTF         Tanker          98889        1
    ECDIS       Practical       88877        1
    AMOS        Manual          78798        1


пожалуйста, помогите мне, в чем проблема в моем коде

F-ES Sitecore

Вместо того чтобы использовать ExecuteReader для получения SqlDataReader, вам, вероятно, лучше использовать набор данных (google how to populate a dataset from sqlcommand). Таким образом, вы можете проверить значение первой строки через набор данных и, если оно равно 1, установить источник данных в качестве набора данных, и он будет иметь все значения. Ваша существующая логика несовершенна, поскольку она обрабатывает данные строка за строкой и делает одно и то же каждый раз, когда вы хотите сделать это только один раз.

Richard MacCutchan

Это происходит потому, что DataReader возвращает только одну запись, а не перечисление.

1 Ответов

Рейтинг:
1

deepankarbhatnagar

Попробуйте этот код, чтобы получить необходимые данные:

string Con= "Server=(local);initial catalog=Testing;Trusted_Connection=True";
SqlConnection sqlcon= new SqlConnection(Con);
SqlCommand cmd = new SqlCommand();
SqlDataReader dr;
cmd.CommandText = "select * from Course where City=1";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlcon;
             sqlcon.Open();
             dr= cmd.ExecuteReader();
             if (dr.HasRows)
             {
                 if (reader.Read())
                 {  
                    Griview.Datasource = dr;
                    Gridview.databind();
                    
                  }
             }