txt文件配置中的c#mysql连接

ao218c7q  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(308)

我正在学习c#,花了很多精力,我已经能够创建一个小型系统,在linux服务器上的mysql数据库中查询和插入信息。到目前为止还不错,但我希望避免重复数据库的连接代码,或者更改服务器、数据库、用户、密码、端口等连接信息。我真的想创建一个包含此信息的txt文件。这可能会根据服务器的ip地址、银行的名称、最终的基本信息而改变,而不必重新编译整个项目。mysql数据库连接代码摘录:

private void btnSalvar_Click(object sender, EventArgs e)
    {          

        string constring = "datasource=mysqlip;port=3306;database=winprog;username=root;password=root"; //How to put this part in a .txt file or something that returns the values ​​that it takes for the connection?//   

        var conexao = new MySqlConnection(constring);
        var comando = conexao.CreateCommand();

        try
        {
            conexao.Open();
            comando.CommandText = "INSERT INTO name (name,attribute,twoname,valuename) VALUES ('" + nameUser.Text + "','username','=','" + namereal.Text + "')"; 
            comando.ExecuteNonQuery();
        }
        finally
        {
            if (conexao.State == ConnectionState.Open)
            conexao.Close();

        }

    }

如果我有10个表单使用代码并需要输入数据,那么这10个表单需要指定连接信息,如果它从服务器更改,那么一切都会变得更复杂。app.config有点奇怪,我想简化一下这个过程。谢谢大家,我为英语道歉。

jslywgbw

jslywgbw1#

使用app.config文件并具体查看元素。在这里,您可以按名称定义一个连接字符串,并使用

ConfigurationManager.ConnectionStrings["<you connection string name>"].ConnectionString;

本页提供了如何在c中从app config获取连接字符串的完整描述#
还可以考虑使用配置转换来允许重新定义配置中的值,这些值会自动为不同的目标环境选择。

kr98yfug

kr98yfug2#

不建议使用文本文件来存储连接字符串,但由于您正在询问如何以这种方式进行存储,因此:
在文件中写入连接字符串。
将文件移到可执行路径。前任:
bin/debug文件夹
阅读: var connectionString = File.ReadAllLines("Connectionstring.txt").FirstOrDefault(); 现在可以使用connectionstring变量。
但是
正如我所提到的,不建议这样做,因为你很难理解app.config是如何工作的。
在app.config中创建一个新元素/条目。每个条目都有一个名称和一个值。

<configuration>
   <connectionStrings>
       <add name="MyDatabaseCS"
        connectionString="datasource=mysqlip;port=3306;database=winprog;username=root;password=root"/>
   </connectionStrings>
</configuration>

现在有了一个名为connectionstrings的元素,它可以有多个/列表的连接字符串。我们将添加一个名为mydatabasecs的新连接字符串,并将您的连接字符串作为一个值。我们稍后将使用该名称来获取连接字符串的值。
现在获取代码中的连接字符串值。您只需引用connection string元素,由于您可能有许多连接字符串,因此必须区分您确切的意思是哪一个,在本例中是mydatabasecs

var connectionString = ConfigurationManager.ConnectionStrings["MyDatabaseCS"].ConnectionString;

相关问题