Member 12926744 Ответов: 1

Как заполнить datagridview только при наличии данных


Всем привет,
У меня есть форма windows с двумя текстовыми полями,одним combobox, одной кнопкой и datagridview .Datgridview привязывается с помощью хранимой процедуры, то есть когда текстовое поле и combobox заполнены и нажмите кнопку datagridview должен быть заполнен.Мне нужно заполнить datagridview только в том случае, если есть данные.Если данные пусты, то datagidview должен отображать "записи не найдены".

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

private void button2_Click(object sender, EventArgs e)
       {

           if (txt_VoucherNo.Text.Trim() != "")
           {
               Voucher = txt_VoucherNo.Text.Trim();
           }
           if (ddl_prt.SelectedValue.ToString().Trim() != "")
           {
               prt = ddl_prtSelectedValue.ToString().Trim();
           }

           if (batch.Text.Trim() != "")
           {
               batch = txt_batchno.Text.Trim();
           }


           //GET Data From Database
           var connectionstring=ConfigurationManager.ConnectionStrings["PROCConnectionString"].ConnectionString;
           SqlConnection cn = new SqlConnection(connectionstring);


           SqlCommand cmd = new SqlCommand();
           cmd.CommandType = CommandType.StoredProcedure;
           cmd.CommandText="SP44";

           cmd.Parameters.AddWithValue("Voucher", Voucher);
           cmd.Parameters.AddWithValue("prt", prt);
           cmd.Parameters.AddWithValue("batch", batch);
           cmd.CommandTimeout = 999999;
           cmd.Connection=cn;

           try
           {
               cn.Open();
               DataTable dt = new DataTable();
               //dt = cmd.ExecuteReader();
               SqlDataReader dr = cmd.ExecuteReader();
               dt.Load(dr);
               dataGridView1.DataSource = dt;



           }
           catch (Exception ex)
           {

           }
           finally
           {
               cmd.Connection.Close();
               cn.Close();
           }


       }


//Это мой код при нажатии на кнопку.Здесь datgridview (только заголовки) загружается, если нет данных.Как я могу загрузить datagridview только в том случае, если есть данные.Любая помощь будет очень признательна.

1 Ответов

Рейтинг:
2

Karthik_Mahalingam

пробовать

DataTable dt = new DataTable();
         SqlDataAdapter da = new SqlDataAdapter(cmd);
         da.Fill(dt);
         if (dt.Rows.Count == 0) {
             DataTable dtNoRows = new DataTable();
             dtNoRows.Columns.Add("Info");
             dtNoRows.Rows.Add("No records found");
             dataGridView1.DataSource = dtNoRows;
         }
         else
             dataGridView1.DataSource = dt;