Используя цикл я показываю запись
В таблице запишите следующее
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 возвращает только одну запись, а не перечисление.