Данные SQL не отображаются в Windows Form ListView с использованием C # - PullRequest
0 голосов
/ 18 октября 2018

Я новичок в кодировании и должен выполнить эту задачу как часть многоуровневого приложения.Этот код выполняется, но данные не отображаются в требуемом ListView.Я не уверен, что я сделал неправильно, поскольку у меня есть другой ListView, который использует подобный код и работает нормально.Есть только два столбца CategoryID и Category.Любая помощь будет оценена.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using Acme.Data_Access_Layer;
using Acme.Business_Layer;

namespace Acme
{ 
    public partial class frmCategoriesView : Form
    {
        public frmCategoriesView()
        {
            InitializeComponent();
        }

        private void DisplayCategories()
        {
            string selectQuery = "SELECT Categories.CategoryID, Categories.Category FROM Categories ";
            SqlConnection conn = ConnectionManager.DatabaseConnection();
            SqlDataReader rdr = null;

            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(selectQuery, conn);
                rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    //Define the list items

                    Categories categories = new Categories(int.Parse(rdr["CategoryID"].ToString()), rdr["Category"].ToString());

                    ListViewItem lvi = new ListViewItem(categories.CategoryID.ToString());
                    lvi.SubItems.Add(categories.Category);
                    lvCategory.Items.Add(lvi);
                }
                if (rdr != null)
                    rdr.Close();
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Unsuccessful" + ex);
            }
        }

        private void frmCategoriesView_FormClosing(object sender, FormClosingEventArgs e)
        {
            frmMainForm mainForm = new frmMainForm();
            mainForm.Show();
            this.Hide();
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmCategoriesView_Load(object sender, EventArgs e)
        {
            DisplayCategories();
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

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

0 голосов
/ 18 октября 2018

Изменить

"SELECT Categories.CategoryID, Categories.Category FROM Categories ";

на

"SELECT CategoryID, Category FROM Categories ";
...