读写数据库并在窗体(Form)中显示其数据,其方式为:
读:
Database(SQLite) -> DataAdapter -> DataSet -> DataGridView
写:
Database(SQLite)
1、假设现有数据库表student,其字段如下:
ID(自增字段,主键)
number
name
grade
1
20120001
jackey
1
2、DataGrideView控件和DataSet控件
在Form上拖放一个DataGrideView控件(注意:不需要指定数据源(DataSource),而只需要在代码中对DataGridView对象的DataSource成员幅值即可);然后再拖放一个DataSet控件(此控制不在窗体上显示出来)。
3、读并在DataGrideView中显示出来
mDbConn =newSQLiteConnection("Data Source=sqlite.student.db");
mDbConn.Open();
dataAdapter =newSQLiteDataAdapter("SELECT * FROM student;", mDbConn);//读数据库
dataAdapter.FillSchema(dataSet1, SchemaType.Source,"student");//将数据库表student的架构信息(此时为主键约束)填充到dataSet1的student表中
dataAdapter.Fill(dataSet1,"student");//填充DataSet控件
dataGridView1.DataSource = dataSet1.Tables["Table"];//注意,DataSet中的数据表依次为Table, Table1, Table2...
mDbConn.Close();
注意:
dataAdapter.FillSchema(dataSet1, SchemaType.Source, "student");//将数据库表student的架构信息(此时为主键约束)填充到dataSet1的student表中
4、写并更新DataGrideView中
mDbConn.Open();
DataRow dataRow = dataSet1.Tables["student"].NewRow();
dataRow["number"] ="20120010";
dataRow["name"] ="李四";
dataRow["grade"] ="2";
dataSet1.Tables["Table"].Rows.Add(dataRow);
dataGridView1.Invalidate();//实时更新dataGridView1
dataAdapter.InsertCommand =newSQLiteCommand("INSERT INTO student(number, name, grade) VALUES('"+ dataRow["number"] +"','"+ dataRow["name"] +"','"+ dataRow["grade"] +"')", mDbConn);
dataAdapter.Update(dataSet1,"student"");
mDbConn.Close();