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不好吗??
============================================
我问的问题可能很蠢,请各位大哥帮忙。
解决方案 »
- 请教这个 数据库操作类
- 怎么DrawString竖着写
- 如何编写文档??????
- C#中DrawImage(emf矢量图),如何背景透明?
- 我用vs2005的串口控件接收数据,稍微长一点的数据如10多个字节都无法接收到,这是怎么回事呢?谢谢
- 既要获取索引,又不想打乱初始顺序,我该怎么办?
- 昨晚国家队无缘世界杯..心非常郁闷.....散分...
- 窗体应用程序中加入web server模块,急用
- VS05下C#语言编译的WindowsForm程序报错~~求助~~在线等~
- 哪里有c#参考资料下载?
- 如何将EXCEL中的数据复制到DataGridView中?
- 此代码中的对象在堆或者栈或者内存中如何引用 的?
2.DataAdapter有它的用处。
我来告诉你:
1。根本没得选,这是必须的,你删除了试试,你看能不能编译通过?
如果没有这句,你前面是一个if语句,所以就有可能不成立(虽然你知道一定会成立,但是编译器认为不一定),而如果不成立,这个函数就没有return语句了,所以编译器会报错:并非所有的路径都返回值。
2.DbDataAdapter为用于非连接数据库的,一般会填充到一个DataSet或DataTable里去
DbCommand是面向连接的,也就是说要一直连接到数据库,才能读取。