public static DataBase CreateData(string ConnectionString, string ProviderName)
{
//以下判断数据库类型并创建相应的对象
if (ProviderName.ToUpper().Contains("OLEDB"))
{
OleDbDataAdapter oledbda = new OleDbDataAdapter();
oledbda.SelectCommand = new OleDbCommand();
oledbda.SelectCommand.Connection = new OleDbConnection(ConnectionString);
return new DataBase(oledbda);
}
return null;
}
public class DataBase
{
private DbDataAdapter mDataAdapter; //指向传入的DbDataAdapter的引用
private DbCommand mCommand; //指向传入的DbDataAdapter.SelectCommand的引用
/// <summary>
/// 构造函数
/// </summary>
/// <param name="DDA">获得一个实例化了的DbDataAdapter的派生类</param>
public DataBase(DbDataAdapter DDA)
{
mDataAdapter = DDA;
mCommand = DDA.SelectCommand;
}
}---------------------------------------------------------------------------------------------------
我想请教的是:
1、第一个类的最后一句语句:return null; 是什么什么的,这样不会返回一个Null值吗,前面返回的DataBase不是没 用了?
2、我觉得这两个类就是生成一个带有初始连接属性(Connection)的DataBase类,为何要用DataAdapter呢?直接用Command和Connection不好吗??
============================================
我问的问题可能很蠢,请各位大哥帮忙。
{
//以下判断数据库类型并创建相应的对象
if (ProviderName.ToUpper().Contains("OLEDB"))
{
OleDbDataAdapter oledbda = new OleDbDataAdapter();
oledbda.SelectCommand = new OleDbCommand();
oledbda.SelectCommand.Connection = new OleDbConnection(ConnectionString);
return new DataBase(oledbda);
}
return null;
}
public class DataBase
{
private DbDataAdapter mDataAdapter; //指向传入的DbDataAdapter的引用
private DbCommand mCommand; //指向传入的DbDataAdapter.SelectCommand的引用
/// <summary>
/// 构造函数
/// </summary>
/// <param name="DDA">获得一个实例化了的DbDataAdapter的派生类</param>
public DataBase(DbDataAdapter DDA)
{
mDataAdapter = DDA;
mCommand = DDA.SelectCommand;
}
}---------------------------------------------------------------------------------------------------
我想请教的是:
1、第一个类的最后一句语句:return null; 是什么什么的,这样不会返回一个Null值吗,前面返回的DataBase不是没 用了?
2、我觉得这两个类就是生成一个带有初始连接属性(Connection)的DataBase类,为何要用DataAdapter呢?直接用Command和Connection不好吗??
============================================
我问的问题可能很蠢,请各位大哥帮忙。
2.DataAdapter有它的用处。
我来告诉你:
1。根本没得选,这是必须的,你删除了试试,你看能不能编译通过?
如果没有这句,你前面是一个if语句,所以就有可能不成立(虽然你知道一定会成立,但是编译器认为不一定),而如果不成立,这个函数就没有return语句了,所以编译器会报错:并非所有的路径都返回值。
2.DbDataAdapter为用于非连接数据库的,一般会填充到一个DataSet或DataTable里去
DbCommand是面向连接的,也就是说要一直连接到数据库,才能读取。