C# - Как использовать ListView и базу данных SQLite - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь добавить некоторые данные из базы данных SQLite внутри ListView. У меня возникли некоторые трудности, так как я хочу вставить все данные столбца, а не одну запись.

КОД ТЕСТА:

Form1.cs {Load}

private void home_form_Load(object sender, EventArgs e)
        {
            listView1.Refresh();

            listView1.View = View.Details;
            listView1.Columns.Add("ID");
            listView1.Columns.Add("Grado");
            listView1.Columns.Add("Cognome");
            listView1.Columns.Add("Nome");
            listView1.Columns.Add("Status");
        }

Form1.cs {menu_button_gestionepax}

private void menu_button_gestionepax_Click(object sender, EventArgs e)
        {
            menu_button_dashboard.BackColor = System.Drawing.Color.DeepSkyBlue;
            panel_dashboard.Visible = false;
            gestionepersonale_panel.Visible = true;
            menu_button_gestionepax.BackColor = System.Drawing.Color.Blue;

            listView1.Refresh();
            ListViewItem lst = new ListViewItem();
            lst.SubItems.Add(LoadUsers.ManagerFind());
            lst.SubItems.Add(LoadUsers.ManagerFind());
            lst.SubItems.Add(LoadUsers.ManagerFind());
            lst.SubItems.Add(LoadUsers.ManagerFind());
            lst.SubItems.Add(LoadUsers.ManagerFind());

            listView1.Items.Add(lst);

            /*
            string[] row = { LoadUsers.ManagerFindid(), LoadUsers.ManagerFindid() };
            var listViewItem = new ListViewItem(row);
            infobox_listview.Items.Add(listViewItem);
            */
        }

LoadUsers.cs

public dynamic string ManagerFind()
{
    using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
    {
        var select = cnn.Query($"select id from utenti");

        if (select.Any())
        { return select[0].ToString(); }
        else return "wrong";
    }
}

Я также провел различные другие тесты, и одна из трудностей в некоторых случаях - вызвать string ManagerFind () из LoadUsers.cs

1 Ответ

0 голосов
/ 19 февраля 2020

Попробуйте что-то вроде этого, чтобы получить строки и столбцы из вашего sql Я знаю, что это то, как вы делаете это в SQL Я уверен, что есть аналогичный способ сделать это с sqlLite

         using (SqlConnection connection = new SqlConnection(_sqlConnectionStringFromUserImput))
                {
                    connection.Open();
                    if (connection.State == ConnectionState.Open)
                    {
                        SqlCommand sqlCommand =
                            new SqlCommand(
                                "select id from utenti",
                                connection)
                            {
                                CommandType = CommandType.Text,
                                CommandTimeout = 20
                            };
                        SqlDataReader reader = sqlCommand.ExecuteReader();
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                DateTime datetimefield = reader.GetFieldValue<DateTime>(0);
                                string stringField = reader.GetFieldValue<string>(1);
                            }
                        }
                        reader.Close();
    }
                    connection.Close();
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...