简体   繁体   English

C# - 如何使用 ListView 和 SQLite 数据库

[英]C# - How to use ListView and SQLite database

I'm trying to add some data from a SQLite database, inside a ListView.我正在尝试从 SQLite 数据库的 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} Form1.cs {加载}

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} 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我还做了各种其他测试,在某些情况下的困难之一是从LoadUsers.cs调用字符串 ManagerFind()

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尝试这样的方法来从你的 sql 中获取你的行和列

         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();
                }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM