4、执行ExecuteReader方法返回一个IDataReader类型的数据集
因为ExecuteReader方法在一开始执行时就打开了一个与数据库的连接,所以我们必须注意在使用结束时关闭连接,而用using(){}语句块就能确保ExecuteReader方法在执行完毕时关闭与数据库的连接。
什么时候使用此方法:
返回的数据仅仅用来显示,并不对其进行修改,删除等操作;
绑定返回的数据到WebForm Control
不需要缓存返回的数据,用完就释放
using (IDataReader reader = db.ExecuteReader(CommandType.Text, "select * from person")){
DataGrid1.DataSource = reader;
DataGrid1.DataBind();
}
5、执行ExecuteDataSet方法返回一个DataSet
public DataSet GetPersonList()
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm = db.GetSqlStringCommand("select * from person");
return db.ExecuteDataSet(dbcomm);
}什么时候使用此方法:
需要返回多表数据;
如果你需要逐一访问数据库的每一条记录,这个时候如果使用DataReader的话,则会使与数据库的连接一直处于打开的状态,长此以往,就会使应用程序的性能和可伸缩性大大降低;
需要和其他的应用程序交换数据;
6、执行ExecuteNonQuery
该方法返回的是SQL语句执行影响的行数,我们可以利用该方法来执行一些没有返回值的操作(Insert,Update,Delete)
public void AddPerson()
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm = db.GetSqlStringCommand("insert into person values(1,'shy','女','123456')");
db.ExecuteNonQuery(dbcomm);
}7、执行ExecuteScalar返回单值
public string GetPersonName()
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcomm = db.GetSqlStringCommand("select name from person");
return (string)db.ExecuteScalar(dbcomm);
}