我正在学习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有点奇怪,我想简化一下这个过程。谢谢大家,我为英语道歉。
2条答案
按热度按时间jslywgbw1#
使用app.config文件并具体查看元素。在这里,您可以按名称定义一个连接字符串,并使用
本页提供了如何在c中从app config获取连接字符串的完整描述#
还可以考虑使用配置转换来允许重新定义配置中的值,这些值会自动为不同的目标环境选择。
kr98yfug2#
不建议使用文本文件来存储连接字符串,但由于您正在询问如何以这种方式进行存储,因此:
在文件中写入连接字符串。
将文件移到可执行路径。前任:
bin/debug文件夹
阅读:
var connectionString = File.ReadAllLines("Connectionstring.txt").FirstOrDefault();
现在可以使用connectionstring变量。但是
正如我所提到的,不建议这样做,因为你很难理解app.config是如何工作的。
在app.config中创建一个新元素/条目。每个条目都有一个名称和一个值。
现在有了一个名为connectionstrings的元素,它可以有多个/列表的连接字符串。我们将添加一个名为mydatabasecs的新连接字符串,并将您的连接字符串作为一个值。我们稍后将使用该名称来获取连接字符串的值。
现在获取代码中的连接字符串值。您只需引用connection string元素,由于您可能有许多连接字符串,因此必须区分您确切的意思是哪一个,在本例中是mydatabasecs