0

我的应用程序的结构如下所示:

解决方案:我的解决方案

MySolution 中的项目:主机、业务、服务器。

项目之间的引用如下所示:Host <-- Business --> Server(Business 引用 Host 和 Server,但 Host 不引用 Server,反之亦然,因为这会导致循环-)

所以,我在服务器中有一些数据库的东西。

  • 我有一个属性: DBConenctionString - 它应该包含连接字符串。

  • 我想要做的是从主机设置这个属性。

  • 我还在服务器项目中保留了所有与数据库有关的方法。

牢记界面 - 这样我也可以在稍后阶段创建一个在线应用程序(网络)。

我有一些代码及其工作,但我不知道这是正确的方法。如果有人可以向我展示一些东西或指出我正确的方向?

代码:我在库中有这个接口(其他两个项目之间的连接):

    public interface IDBUtils
    {
        string DBConnectionString { get; set; }

        bool OpenConnection();

        bool CloseConnection();

        bool ExecuteSQL(string sql);

        bool CreateDatabase(string servername, string databaseName, string databaseDataPath);

        bool CreateDatabaseUser(string servername, string username, string password);
    }

然后库中具有接口代码的类:

public string DBConnectionString
{
    get
    {
        return DBService.DB.DBUtils.DBConnectionString;
    }
    set
    {
        DBService.DB.DBUtils.DBConnectionString = value;
    }
}

public bool OpenConnection()
{
    return DBService.DB.DBUtils.OpenConnection();
}

public bool CloseConnection()
{
    return DBService.DB.DBUtils.CloseConnection();
}

public bool ExecuteSQL(string sql)
{
    return DBService.DB.DBUtils.ExecuteSQL(sql);
}

public bool CreateDatabase(string servername, string databaseName, string databaseDataPath)
{
    return DBService.DB.DBUtils.CreateDatabase(servername, databaseName, databaseDataPath);
}

public bool CreateDatabaseUser(string servername, string username, string password)
{
    return DBService.DB.DBUtils.CreateDatabaseUser(servername, username, password);
}

我只会在服务器上显示属性和一种方法,否则会变得太长。

在服务器上: 属性:

public static string DBConnectionString { get; set; }

OpenCONnection() 方法:

        public static bool OpenConnection()
        {
            bool success = false;
            try
            {
                if (DBConnectionString.Length > 0)
                {
                    conn = new SqlConnection(DBConnectionString);
                    conn.Open();
                    success = true;
                }
            }
            catch { /* Do nothing... */ }
            return success;
        }

==================================================== ========================================

从服务器上的主机设置属性:它使用库上的接口:

iDBUtils.DBConnectionString = connectionString.ToString();

要从服务器上的主机执行方法:

iDBUtils.OpenConnection();

如您所见,图书馆是“中间人”。

4

0 回答 0