6

I'm trying to fill a datagridview from an SQLite database.

I've found plenty of ways of doing this. However, I have pre-existing columns in my dgv (Item, Quantity).

Currently, when I load the DB to the dgv, I get columns of the DB inserted into the dgv instead of the actual data being inserted into the correct column.

My SQLite DB, has a table with three columns (id PRIMARY KEY AUTO INCREMENT, item VARCHAR, quantity INTEGER).

How do load the DB into the pre-existing columns of the dgv?

Current code for filling dgv:

private void button1_Click_1(object sender, EventArgs e)
    {
        SetConnection();
        sqlconnection.Open();
        sqlcmd = sqlconnection.CreateCommand();

        string CommandText = "SELECT * FROM table1";
        sqlda = new SQLiteDataAdapter(CommandText, sqlconnection);


        using (dt = new DataTable())
        {
            sqlda.Fill(dt);
            dataGridView1.DataSource = dt;
        }
0

2 Answers 2

15

If you dont want to disturb the columns you can read the rows one by one using SQLiteDataReader and put it into the datagridview..

private void button1_Click_1(object sender, EventArgs e)
{
    conn.Open();
    SQLiteCommand comm = new SQLiteCommand("Select * From Patients", conn);
    using (SQLiteDataReader read = comm.ExecuteReader())
    {
        while (read.Read())
        {
            dataGridView1.Rows.Add(new object[] { 
            read.GetValue(0),  // U can use column index
            read.GetValue(read.GetOrdinal("PatientName")),  // Or column name like this
            read.GetValue(read.GetOrdinal("PatientAge")),
            read.GetValue(read.GetOrdinal("PhoneNumber")) 
            });
        }
    }

}
Sign up to request clarification or add additional context in comments.

Comments

2

1) Set AutoGenerateColumns to false

2) dgv.Columns["Item"].DataPropertyName = "Item"; dgv.Columns["Quantity"].DataPropertyName = "Quantity";

3) Then instead of select * from table1 use select item Item,quantity Quantity from table1

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.