0

Я собрал этот код и задавался вопросом, как вызывать определенные данные из .config или .ini-файла. Я заглянул в AppSettings и ConfigurationManager, но для мозгов нуба просто слишком много, чтобы вычислить :-)Создание файла app.config

Я добавил ссылочный класс system.configuration в список классов ссылок. В основном я хочу, чтобы переменные для MySQL хранились во внешнем файле, который может быть изменен конечным пользователем позднее. Я не мог поместить весь код, потому что он сказал, что я превысил 3000 строк или что-то в этом роде.

DBServer = RemoteServer 

dataBase = myDatabase 

user = root 

password = [the password here] 

Я попытался следующий код с app.config, но до сих пор ничего не

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="constring" connectionString="server=localhost; database=SchoolDB; user  id=root; password=Pa55w0rd;"/> 
    </connectionStrings> 
</configuration> 

Заменены следующие в Mainwindow.cs

string constring = "datasource=localhost;port=3306;username=root;password=Pa55w0rd"; 

с этим

string constring = ConfigurationManager.ConnectionStrings["dbconnectionstring"].ConnectionString; 

Тогда я получаю эту ошибку

"ссылка на объект не указывает на экземпляр объекта"

Ok так вот Mainwindow.cs

public partial class Portal : Form 
{  
    public Portal(string UserName) 
    { 
     InitializeComponent(); 
     lbl_username.Text = UserName; 
     timer1.Start(); 
     txt_staff_password1.PasswordChar = '*'; 
     load_loan_laptops();    
    } 
    DataTable dbdataset; 

    void load_loan_laptops() 
    { 
     //string constring = "datasource=localhost;port=3306;username=root; password=Pa55w0rd"; 
     string constring =  ConfigurationManager.ConnectionStrings["constring"].ConnectionString; 
     string Query = "Select * from schooldb.loans where Avail = 'yes';"; 
     MySqlConnection conDataBase = new MySqlConnection(constring); 
     MySqlCommand cmdDataBase = new MySqlCommand(Query, conDataBase); 
     MySqlDataReader myReader; 

     try 
     { 
      conDataBase.Open(); 
      myReader = cmdDataBase.ExecuteReader(); 

      while (myReader.Read()) 
      { 
       string devices = myReader.GetString("Device_Name"); 
       cmb_acer_loan.Items.Add(devices); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     conDataBase.Close(); 
    } 

Пожалуйста, помогите с этой проблемой.

+0

Привет, ребята, Может кто-то, пожалуйста, помогите мне в этом. – user3051236

ответ

0

проблема: Файл app.config имеет <connectionString> тег вместо <connectionStrings> тег.

Решение: Заменить <connectionString> с <connectionStrings> и </connectionString> с </connectionStrings> в app.config файле

Попробуйте это:

app.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="constring" connectionString="datasource=localhost;port=3306;username=root;password=Pa55w0rd"/> 
     </connectionStrings> 
</configuration> 

код:

string constring = ConfigurationManager.ConnectionStrings["constring"].ConnectionString; 
+0

Извините, приятель. Еще ничего. – user3051236

+0

@ user3051236: что такое сообщение об ошибке, сообщите мне точное сообщение об ошибке и получите ошибку. –

+0

"Ссылка на объект, не установленная на экземпляр объекта" - это ошибка, которую я получаю. Спасибо – user3051236

Смежные вопросы