输入参数后从 C# 中的外部类获取连接字符串

Posted

技术标签:

【中文标题】输入参数后从 C# 中的外部类获取连接字符串【英文标题】:Getting connection string from an external class in C# after parameters input 【发布时间】:2012-04-19 12:21:15 【问题描述】:

我有一个 WinForm,其中有 2 个文本框用于输入服务器名称和数据库,RadioButtons 用于在提供程序之间切换,还有 1 个按钮用于根据输入构建 ConnectionStrings。 _ServerName 和 _DatabaseName 是全局变量。 我想在表单之外构建连接字符串并将结果返回到我的表单中的标签控件, 我的外部类中的代码如下:

    public static string _ServerName  get; set; 
    public static string _Base  get; set; 
    public static SqlConnection _Con  get; set; 
    static void ConOption1()
    
        Global._Con = new SqlConnection();
        Global._Con.ConnectionString = @"data source=" + Global._ServerName + "; initial catalog=" + Global._Base + "; Integrated Security=True";
    

我的表单(Form1)中的代码是:

        private void button1_Click(object sender, EventArgs e)
    
        Global._ServerName = textBox1.Text;
        Global._Base = textBox2.Text;
        ConOption1();
        label1.Text = Global._Con.ToString();
    

这里的问题是我无法从Form1调用conOption1来获取Label1.text中的内置字符串,谢谢你的帮助。

【问题讨论】:

【参考方案1】:

您没有将ConOption1 标记为公开。

“我不能调用 conOption1 来获取构建的字符串”到底是什么意思?编译器不仅不会编译您的代码,还会指出确切的问题。因为编译器已经告诉你错误在哪里,所以问“哪里是错误”的问题是没有意义的。

【讨论】:

感谢您的回复,请考虑到我是 C# 新手。我已经从 static void ConOption1() 更改为 public void ConOption1(),编译器现在返回:“当前上下文中不存在名称 'ConOption1'” @AlphaBird,您需要在对 ConOption 的调用前加上类名和/或命名空间。我怀疑这会起作用:Global.ConOption1(); @Brad,在 intellisens 和 Global.ConOption1() 中都无法获得 MyWorkSpace.MyClass.ConOption1();工作这似乎是一个变量而不是一个函数。 @AlphaBird,该方法需要是公共和静态的:public static void ConOption1()

以上是关于输入参数后从 C# 中的外部类获取连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

C#连接Oracle数据库字符串(引入DLL)

C#中连接MySql的字符串

从 C# 中的应用程序配置文件中获取连接字符串

c#操作EXCEL

c#如何将数据库连接封装成dll

C# LINQ 与两个不同数据集上的条件 where 子句连接