Member 10532715 Ответов: 1

Datagridview возвращается с пустой строкой


Сегодня я столкнулся с проблемой заполнения datagridview1. я создал пустоту для заполнения таблицы из источника данных. он отлично работает в кнопках click, но не заполняется, если я положил его на загрузку страницы.

Что я уже пробовал:

private void fillgidview()
        {
            try
            {
                cnn.Open();
                string sqlcommand = " select OPD_NO as [OPD No],Patientname as [Pateint Name],Age,VisitDate as [visit Date],Department,Consultent_Doctor  from OPD_table  where Status_pet='Checked In'   and Consultent_Doctor='" + label5.Text + "'";

                SqlDataAdapter adap = new SqlDataAdapter(sqlcommand, cnn);

                DataTable dt = new DataTable();

                adap.Fill(dt);
                
                this.dataGridView1.DataSource = dt;
                
                cnn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

            }
        }

Sinisa Hajnal

Если это веб-разработка (как подразумевается загрузкой страницы), то вам нужно вызвать dataGridView1.DataBind()

Если это не так (как подразумевается при использовании DataGridView), то вам нужно сделать form load not page load event.

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

Member 10532715

да это настольное приложение windows pls смотрите мой полный код

код предыдущей страницы, где я поставил

частная adminMenuToolStripMenuItem_Click недействительным(объект отправителя, EventArgs в электронной)
{
FrmDoctorOPD doctoropd = новый FrmDoctorOPD();
докторопд.Покажите();
doctoropd.label5.Текст = label12.Текст;



}

теперь на странице к я поставил его как..

частная FrmDoctorOPD_Load недействительным(объект отправителя, EventArgs в электронной)
{

label7.Текст = Система.Дата-Время, Сейчас.ToShortDateString();
fillgidview();


}

частный недействительными fillgidview()
{
пробовать
{
телеканал CNN.Открыть();
строковое свойство sqlcommand = " выбрать OPD_NO как [ОПД нет],Patientname как [имя Pateint],возраст,VisitDate как [дата поездки],кафедра,Consultent_Doctor от OPD_table где Status_pet='зарегистрировались' и Consultent_Doctor='" + label5.Текст + "'";


SqlDataAdapter adap = новый SqlDataAdapter(sqlcommand, cnn);


DataTable dt = новый DataTable();

адап.Заполнить(ДТ);

this.dataGridView1. DataSource = dt;


телеканал CNN.Рядом();
}
поймать (исключение бывший)
{
Ящик для сообщений.Шоу (напр.Метод toString());

}




}

1 Ответов

Рейтинг:
1

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Ссылаться - Как привязать данные к элементу управления Windows Forms DataGridView[^].

Убедитесь, что ваши данные поступают из базы данных.


Member 10532715

да, это исходит из базы данных.. когда я использую кнопку поиска .. она работает нормально, но не в загрузке страницы.. Пожалуйста, посмотрите код кнопки поиска, он работает как шарм..

частный поиск пустоты()
{

пробовать
{
телеканал CNN.Открыть();
строковое свойство sqlcommand = " выбрать OPD_NO как [ОПД нет],Patientname как [имя Pateint],возраст,VisitDate как [дата поездки],кафедра,Consultent_Doctor от OPD_table где Status_pet='зарегистрировались' и Consultent_Doctor='" + label5.Текст + "' и visitdate между '" + DateTime.Метод parseexact(это.dateTimePicker1.Текст, "ММ/ДД/гггг", свойство CultureInfo.Инвариантная культура) + " и " + дата-время.Метод parseexact(это.dateTimePicker2.Текст, "ММ/ДД/гггг", свойство CultureInfo.Инвариантная культура)+"'";


SqlDataAdapter adap = новый SqlDataAdapter(sqlcommand, cnn);


DataTable dt = новый DataTable();

адап.Заполнить(ДТ);

если (ДТ.Строк.Граф > 0)
{

this.dataGridView1. DataSource = dt;

телеканал CNN.Рядом();
}

ещё
{
Ящик для сообщений.Show ("никаких записей не найдено");
dataGridView1. DataSource = null;
телеканал CNN.Рядом();
}
}
поймать (исключение бывший)
{
Ящик для сообщений.Шоу (напр.Метод toString());

}



}

Member 10532715

частная metroTile3_Click недействительным(объект отправителя, EventArgs в электронной)
{
поиск();

}

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Ваш запрос отличается здесь внутри метода поиска. Можете ли вы отлаживать и видеть в коде, поступают ли данные и привязываются ли они к datatable?

Member 10532715

Это было решено, на самом деле мой конструктор передает данные после загрузки формы, в которую я поместил его после.. тогда он работает нормально.. Спасибо Г-н Tadit.. за просмотр моей проблемы...

неправильный код..
FrmDoctorOPD doctoropd = новый FrmDoctorOPD();
докторопд.Покажите();
doctoropd.label5.Текст = label12.Текст; / / / - неправильно постнагрузки

Правильный код..

FrmDoctorOPD doctoropd = новый FrmDoctorOPD();
doctoropd.label5.Текст = label12.Текст; прежде чем загрузить
докторопд.Покажите();

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Рад это слышать. Добро пожаловать. Продолжайте кодировать. :)