0

我正在开发一个程序,我需要为我的数据库连接制作一个设置表单。我停在如何从文本框中设置连接字符串。这是我的代码:

在设置表单中:

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";
4

2 回答 2

0

Michal,如果这是整个代码并且您没有为文本框设置默认值,那么它不起作用也就不足为奇了。您需要在对某些事件做出反应时检索该值,例如当您按下某个按钮时......或者可能监控 OnTextChanged 事件......

此示例显示您创建一些表单并立即尝试检索一个值。那行不通,因为文本框还没有任何价值。

编辑: 那些双双斜杠给你带来了这些问题。不知道它在哪里应用这个转义逻辑,它可能是你设置的一些设置,但有一个简单的解决方案:

string x = nastavenia.adresa_servera().Replace("\\", "\");

如果这对您有帮助,请告诉我。

于 2012-04-24T22:57:33.583 回答
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);
            }

最好的祝福

于 2012-04-24T23:25:56.473 回答