Database db = DatabaseFactory.CreateDatabase();
string sqlCommand = "Select CustomerID, LastName, FirstName From Customers";
DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);
以上代码有几点疑问。
1、DataBase不是系统.net framework中定义的类吧?
2、Dbcommand的用法。
3、DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);这段话时什么意思?DbCommand是抽象类,不能实例化,所以用db.GetSqlStringCommand来实现吗,怎么理解?
小弟在这先谢过了
------解决方案--------------------------------------------------------
1、首先,database不是NET定义的类,应该是自定义的,你去看看sqlHeleper相关的代码。自定义的
2、表示要对数据源执行的 SQL 语句或存储过程。为表示命令的、数据库特有的类提供一个基类。
MSDN
3、抽象类是不能实例的,抽象方法也是不能直接调用的,确实是这样.给段代码吧
- C# code
/// <summary> /// 返回Command实例,并且设置Connection和CommandText /// </summary> /// <param name="DataBaseType"></param> /// <param name="sql"></param> /// <returns></returns> public static DbCommand CreateCommand(int DataBaseType, string sql) { DbCommand cm = null; switch (DataBaseType) { case 2: cm = new System.Data.OracleClient.OracleCommand(sql, (System.Data.OracleClient.OracleConnection)CreateConnection()); break; case 3: cm = new System.Data.OleDb.OleDbCommand(sql, (System.Data.OleDb.OleDbConnection)CreateConnection()); break; case 4: cm = new System.Data.Odbc.OdbcCommand(sql, (System.Data.Odbc.OdbcConnection)CreateConnection()); break; default: [color=#FF0000] cm = new System.Data.SqlClient.SqlCommand(sql, (System.Data.SqlClient.SqlConnection)CreateConnection()); break;[/color] } return cm; }