我正在开发一个程序,我需要为我的数据库连接创建一个设置表单。我停止了如何从文本框设置连接字符串。这是我的代码:
在设置表单中:
public string adresa_servera()
{
return textBox1.Text;
}
此文本框中的文本为:MICHAL-PC \ SQLEXPRESS
在我的主要表格中,我使用:
db_nastavenia nastavenia = new db_nastavenia(); //db_nastavenia is the name of the settings Form
string x = nastavenia.adresa_servera();
SqlConnection databaza = new SqlConnection();
databaza.ConnectionString = "Data Source=" + x + ";Initial Catalog=ZBERUDAJOVTEPLA;Persist Security Info=False;User ID=sa; password=diplomovka";
要x我从设置表单的文本框中加载文本。
当我通过手动输入这样的连接字符串来尝试它时,效果很好:
databaza.ConnectionString = "Data Source=MICHAL-PC\\SQLEXPRESS;Initial Catalog=ZBERUDAJOVTEPLA;Persist Security Info=False;User ID=sa; password=diplomovka";
答案 0 :(得分:0)
Michal,如果这是整个代码并且您没有为文本框设置默认值,那么它不起作用就不足为奇了。您需要在对某些事件做出反应时检索该值,例如当您按下某个按钮时......或者可能会监视OnTextChanged事件......
此示例显示您创建了一些表单并立即尝试检索值。这不起作用,因为文本框还没有价值。
修改强> 那些双重斜线正在引起你这些问题。不知道它在哪里应用这个转义逻辑,它可能是你设置的一些设置,但有一个简单的解决方案:
string x = nastavenia.adresa_servera().Replace("\\", "\");
如果这有助于你,请告诉我。
答案 1 :(得分:0)
您好,您可以这样做:
try
{
string x = TextBox1.Text;
string Connection ="Data Source=" + x + ";Initial Catalog=ZBERUDAJOVTEPLA;Persist Security Info=False;User ID=sa; password=diplomovka";
using (var conn = new SqlConnection(Connection))
{
using (var cmd = new SqlCommand("Select * from Yourtable", conn))
{
try
{
conn.Open();
}
catch (SqlException)
{
throw;
}
finally
{
if (conn.State == ConnectionState.Open) conn.Close();
}
}
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
最好的问候