Как сделать цикл через таблицу SQL для установки глобальных переменных
Всем Привет
У меня есть таблица tblFlags с 3 столбцами UniqID, FlagName,FlagValue
Эта таблица используется для хранения настроек приложения т. е. DataPathBackup
Что я хотел бы сделать, так это пройтись по этой таблице, чтобы установить общедоступные статические строки при запуске
ie public static string "FlagName" = " FlagValue"
это должно вернуть: public static string DataPathBackup = z:\AppBackup\
Как я смогу этого достичь?
Что я уже пробовал:
Я установил некоторые значения по умолчанию
т.е.
публичная статическая строка DataPathBackup= @"Z:\AppBackup\";
затем я вызываю FillFlags()
Снизу;
Джей возвращает правильный FlagName и возвращает к правильной FlagValue
поэтому я хотел бы иметь что-то вроде
общественности статической строки "Дж" = "к"
затем это будет переопределять Мои настройки по умолчанию, если они были найдены в этой таблице
public void FillFlags() { string connectionString = null; SqlConnection cnn,cnn2; connectionString = CString; cnn = new SqlConnection(connectionString); cnn2 = new SqlConnection(connectionString); SqlDataReader dr,dr2; SqlCommand comm = new SqlCommand("SELECT [FlagName],[FlagValue] from tblFlags"); comm.Connection = cnn; cnn.Open(); dr = comm.ExecuteReader(); while (dr.Read()) { string j = dr["FlagName"].ToString(); SqlCommand comm1 = new SqlCommand("SELECT [FlagValue] from tblFlags WHERE FlagName='"+ j +"'"); comm1.Connection = cnn2; cnn2.Open(); dr2 = comm1.ExecuteReader(); MessageBox.Show(j); while (dr2.Read()) { string k=dr2["FlagValue"].ToString(); //j = k; MessageBox.Show(k); } dr2.Close(); dr2.Dispose(); cnn2.Close(); } dr.Close(); dr.Dispose(); cnn.Close(); }
Tomas Takac
В чем проблема с вашим кодом? Хотя несколько комментариев:
1) Использование оператор using[^] с одноразовыми предметами.
2) Вы можете использовать Метод ExecuteScalar[^] когда вы извлекаете одно значение из базы данных.
3) рассмотрите возможность загрузки всех флагов и обработки всего списка сразу.
Member 11259478
Привет Томас
Спасибо, что нашли время ответить на мой вопрос
Он вообще не устанавливает мою статическую строку
В приведенном ниже разделе:
если я изменю то J=K, чтобы DataPathBackup = K, то оно работает
Проблема в том, что я не хотел бы указывать публичную статическую строку вручную - она должна быть получена из Tblflags FlagName
как бы я смог сделать весь список за 1 раз?
Спасибо
пока (рп2.Читать())
{
строка k=dr2 ["FlagValue"].Метод toString();
// / = к;
Ящик для сообщений.Шоу(к);
}