我正在尝试从SQLite数据库填充datagridview。
我找到了很多方法。但是,我的dgv中有预先存在的列(项目,数量)。
目前,当我将数据库加载到dgv时,我会将数据库的列插入到dgv中,而不是将实际数据插入到正确的列中。
我的SQLite数据库,有一个包含三列的表(id PRIMARY KEY AUTO INCREMENT,item VARCHAR,quantity INTEGER)。
如何将数据库加载到dgv的预先存在的列中?
填写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 :(得分:10)
如果您不想打扰列,可以使用SQLiteDataReader逐行读取行并将其放入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"))
});
}
}
}
答案 1 :(得分:2)
1)将AutoGenerateColumns设置为false
2)dgv.Columns [" Item"]。DataPropertyName =" Item&#34 ;; dgv.Columns [" Quantity"]。DataPropertyName =" Quantity&#34 ;;
3)然后而不是
select * from table1
使用
select item Item,quantity Quantity from table1