Это трудно объяснить внутри заголовка. Я продолжаю цикл foreach, который устанавливает новую строку соединения для каждого целевого сервера и базы данных. Однако, когда цикл foreach приходит, он задает строку, как предполагалось, однако SqlConnection продолжает смотреть на первую строку.SQLConnection не полностью становится новым подключением, используя новый ConsoleApp
Ниже то, что я использую, чтобы вызвать соединение:
foreach (string DatabaseConfig in DataHoldingClass.Server_Database_Config)
{
string[] splitConfig = DatabaseConfig.Split('|');
//set sql connection config
DataHoldingClass.Database = splitConfig[0];
DataHoldingClass.SQLSERVER = splitConfig[1];
//open specific config
SQLProcessorClass.SQLMASTERCONNECTION = SQLProcessorClass.OpenSQLConnection();
//do some work here
SQLProcessorClass.SQLMASTERCONNECTION.Dispose();
}
Ниже то, что я использую, чтобы установить соединение:
public static string masterConString = "server="+DataHoldingClass.SQLSERVER+";database ="+DataHoldingClass.Database+";Trusted_Connection=Yes;persist security info=False;connection timeout=500";
public static SqlConnection SQLMASTERCONNECTION { get; set; }
public static SqlConnection OpenSQLConnection()
{
SqlConnection sqlCon = new SqlConnection(masterConString);
sqlCon.Open();
return sqlCon;
}
И ниже DataHoldingClass
public static string Database { get; set; }
public static string SQLSERVER { get; set; }
так, например, моя строка DatabaseConfig = "Database1 | Server1" и следующий цикл в DataHoldClass.Server_Data base_Config - «Database2 | Server2», когда цикл происходит во второй раз, он продолжает использовать «Database1 | Server1», даже если он находится во второй строке цикла.
Любые идеи?
О, я на самом деле не вызываю функцию Database
, хотя stackoverflow выделяется тем, что синим цветом.
как бы вы порекомендовали? –
Да, к сожалению, что класс SQL, у которого есть соединение, потребует значительного изменения для большого количества кода. Мне нужно сохранить его там, что легко сделать, чтобы установить его в коде, который у меня сверху. –
, если вы хотите сохранить сложный код (а если он не был, то эта ошибка, вероятно, не произошла бы), это ваш выбор. Создание оболочки вокруг соединений и создание кода, который не создает соединение, ответственное за его закрытие, может привести к проблемам. Мне нравится держать вещи простыми. Кроме того, вам не нужно менять много кода, если все, что вы хотите сделать, - это упростить введенный вами код; просто используйте что-то похожее на то, что я разместил. –