Hassaan_Malik Ответов: 1

Gridview с данными не отображается в ASP.NET


Хе.
Я сделал четыре столбца базы данных в своем приложении. Это имя, DocumentContent (который будет любым файлом, например pdf, png, docs и т. д.), Текст и демо.
Я успешно вставил все значения в соответствующие столбцы базы данных. Теперь я хочу отобразить вставленные данные в girdview. Я написал код для этого,но gridview не показывает данные.Пожалуйста, помогите мне.

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

protected void Page_Load(object sender, EventArgs e)
{   
  fildata();   
}

protected void Button1_Click(object sender, EventArgs e)
{
  FileInfo fi = new FileInfo(FileUpload1.FileName);

  byte[] documentContent = FileUpload1.FileBytes;

  String name = fi.Name;
  using (SqlConnection con = new SqlConnection(cn))
  { 
    string query ="insert into Documents"+ "(Name,DocumentContent,Text,Demo) values(@Name,@doc,@Text,@Demo)";

    SqlCommand cmd = new SqlCommand(query, con);
    
    cmd.Parameters.AddWithValue("@Name", name);
    cmd.Parameters.AddWithValue("@doc", documentContent);
    cmd.Parameters.AddWithValue("@Text", TextBox1.Text);
    cmd.Parameters.AddWithValue("@Demo",TextBox2.Text);
    con.Open();
    
    cmd.ExecuteNonQuery();
    con.Close();
  }
}

//filldata is my method, which i made to show data in gridview. then i am calling that method on page_load time.

private void fildata() 
{
  DataTable dt = new DataTable();

  using (SqlConnection con = new SqlConnection(cn))
  {
    string show = "Select * from Documents";

    SqlCommand sq = new SqlCommand(show, con);
    con.Open();
    SqlDataReader sr = sq.ExecuteReader();
    dt.Load(sr);
    GridView1.DataSource = dt;
    GridView1.DataBind();

  }
}

[no name]

Скорее всего, потому, что при загрузке страницы в вашей базе данных нет никаких данных. Узнайте, как использовать отладчик, и узнайте, что делает ваш код.

Hassaan_Malik

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

[no name]

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

[no name]

Снова вызовите функцию fillData () из события Button_click, как только вы добавите данные в таблицу. Если ваша вставка здесь удалась, вы должны иметь возможность заполнить элемент управления сеткой.

Hassaan_Malik

Я это проверил. Но в gridview ничего не видно. Пожалуйста, помогите мне или дайте предложение, чтобы решить эту проблему. пожалуйста

Bryian Tan

Можете ли вы показать нам разметку. aspx?

Hassaan_Malik

извините, что вы подразумеваете под разметкой aspx? .. ??

Bryian Tan

Вы разместили код позади. но не содержимое страницы. aspx. Во всяком случае, я подозреваю, что GridView имел AutoGenerateColumns=False, если в этом случае он установил значение true.

Hassaan_Malik

О великий, мои данные теперь отображаются. В одном столбце gridview я храню свои файлы (pdf и т. д.). Этот столбец не отображается в gridview. Как я могу это решить? И действительно, большое спасибо за помощь.

Bryian Tan

Отличный. Трудно предложить что-то еще, не видя разметки.

Hassaan_Malik

Должен ли я отправить весь свой код страницы aspx??? Я хочу показать тебе фотографию datagridview. Но здесь я не могу отправить pic. Можем ли мы связаться с вами по электронной почте?. Если вы окажете мне какую-нибудь услугу. Я буду вам очень благодарен.

Hassaan_Malik

Брайан Тан.. Я решил свою проблему. Я совершила небольшую ошибку.Но теперь мне это удалось. Я получаю ожидаемый результат. Большое спасибо за сотрудничество. Ты потрясающая.

Bryian Tan

Потрясающий.

Hassaan_Malik

этот столбец называется documentContent . Вы можете увидеть эту колонку в моем коде. Я успешно вставил данные, но этот столбец не отображается.

Bryian Tan

Эта статья может помочь.
Храните и просматривайте PDF-файлы в GridView[^]

1 Ответов

Рейтинг:
5

Prashant-Systematix

Привет Hassaan_Malik,

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

<!--Your gird on aspx page-->
<asp:GridView runat="server" ID="GridView1" AllowPaging="true" PageSize="10" AutoGenerateColumns="false" Width="420px">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="DocumentContent" HeaderText="Document Content" />
<asp:BoundField DataField="Text" HeaderText="Text" />
<asp:BoundField DataField="demo" HeaderText="Demo" />
</Columns>
</asp:GridView>


//Your gird loading code logic

protected void Page_Load(object sender, EventArgs e)
{   
  fildata();   
}
 
protected void Button1_Click(object sender, EventArgs e)
{
  FileInfo fi = new FileInfo(FileUpload1.FileName);
 
  byte[] documentContent = FileUpload1.FileBytes;
 
  String name = fi.Name;
  using (SqlConnection con = new SqlConnection(cn))
  { 
    string query ="insert into Documents"+ "(Name,DocumentContent,Text,Demo) values(@Name,@doc,@Text,@Demo)";
 
    SqlCommand cmd = new SqlCommand(query, con);
    
    cmd.Parameters.AddWithValue("@Name", name);
    cmd.Parameters.AddWithValue("@doc", documentContent);
    cmd.Parameters.AddWithValue("@Text", TextBox1.Text);
    cmd.Parameters.AddWithValue("@Demo",TextBox2.Text);
    con.Open();
    
    cmd.ExecuteNonQuery();
    con.Close();
  }
}
 
//filldata is my method, which i made to show data in gridview. then i am calling that method on page_load time.
 
private void fildata() 
{
  DataTable dt = new DataTable();
 
  using (SqlConnection con = new SqlConnection(cn))
  {
    string show = "Select * from Documents";
 
    SqlCommand sq = new SqlCommand(show, con);
    con.Open();
    SqlDataReader sr = sq.ExecuteReader();
    dt.Load(sr);
    GridView1.DataSource = dt;
    GridView1.DataBind();
 
  }
}


Спасибо
Дайте мне знать, если возникнут какие-либо вопросы.