我正在尝试使用MySQL实现数据库连接上的工厂模式,SQL Server面临奇怪的错误
Object reference not set to an instance of an object
在SQL命令对象上
internal class SqlServerDB : IDatabase
{
private SqlConnection _Connection = null;
private SqlCommand _Command = null;
public IDbCommand Command
{
get
{
if (_Command == null)
{
_Command.Connection = (SqlConnection)Connection;
//_Command = new SqlCommand();
}
return _Command;
}
}
public IDbConnection Connection
{
get
{
if (_Connection == null)
{
string connectionString = ConfigurationManager.ConnectionStrings["testSQL"].ConnectionString;
_Connection = new SqlConnection(connectionString);
}
return _Connection;
}
}
}
数据库工厂部分:
public static class DatabaseFactory
{
public static IDatabase CreateDatabase(DBType type)
{
switch (type)
{
case DBType.SqlServer:
return new SqlServerDB();
case DBType.MySql:
return new MySQLDB();
}
return null;
}
}
主要方法
static void Main(string[] args)
{
IDatabase database;
DBType databaseType = DBType.SqlServer;
database = DatabaseFactory.CreateDatabase(databaseType);
IDbConnection connection = database.Connection;
IDbCommand command = database.Command;
command.CommandType = CommandType.Text;
command.CommandText = "select * from User";
connection.Open();
}
和Enum选择数据库.