创建app.config文件

时间:2013-11-30 08:37:31

标签: c# mysql connection-string app-config system.configuration

我已将这段代码放在一起,并想知道如何从.config或.ini文件中调用某些数据。我已经研究过AppSettings和ConfigurationManager,但是对于noob大脑计算它太多了: - )

我已将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;

然后我收到此错误

“对象引用未设置为对象的实例”

好的,这里是 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();
    }

请有人帮忙解决这个问题。

1 个答案:

答案 0 :(得分: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;
相关问题