C# - How to use ListView and SQLite database

北城余情 提交于 2020-03-26 04:07:32

问题


I'm trying to add some data from a SQLite database, inside a ListView. I'm having some difficulties as I want to insert all the data of the column and not a single record.

TEST CODE:

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";
    }
}

I have also done various other tests and one of the difficulties in some cases is to call string ManagerFind() from LoadUsers.cs


回答1:


Try something like this to get your rows and columns from your sql i know this is how you do it in SQL im sure there is a similar way to do it with 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();
                }


来源:https://stackoverflow.com/questions/60286897/c-sharp-how-to-use-listview-and-sqlite-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!