在一个表单中声明SqlConnection

我正在寻找关于C#的一些建议 – 请记住,我只是C#和Sql的初学者。

我期待设计一个小程序,它将添加/编辑/删除并运行所有链接到Sql数据库的报告。

我希望在同一表单的不同区域中包含多个函数和Sql查询。

示例:1。我希望有一个用于搜索的combobox(从dbo.table中选择*)2。我有一个按钮,当单击时显示来自另一个dbo.table的所有信息。

我的问题是:

我是否必须多次声明我的Sqlconnection,或者可以在我的声明中声明:

public partial class MainMenu : Form { SqlConnection mmConnection = new SqlConnection("#"); SqlCommand mmCommand = new SqlCommand(); SqlDataReader reader; } 

然后我可以使用:

 mmConnection.Open(); mmConnection.Close(); 

任何建议都会很棒。 如果我可以在我的表单顶部声明它将保持我的代码更清洁。

最诚挚的问候,扎克哈格里夫斯。

考虑将SqlConnection声明为主窗体的字段(如果您不想在任何其他窗体上使用它)。

注意:添加对System.Configuration程序集的引用以使用ConfigurationManager类。

例:

 public partial class MainMenu : Form { SqlConnection _myConnection; public Form1() { InitializeComponent(); this._myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[0].ConnectionString); } public void ExecuteAQueryExample() { if (this._myConnection.State != ConnectionState.Open) this._myConnection.Open(); using (var command = this._myConnection.CreateCommand()) { // ... } this._myConnection.Close(); } } 

在web.config文件中添加连接字符串

    

并以aspxforms

  SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connection string"].ToString()); 

有关更多信息,请使用此链接

最好使用单个连接字符串,在web.config文件中声明连接并在aspx.cs中调用它

当然,您不需要拥有多个SqlConnection实例。 对于大多数应用,一个连接就足够了。 另一方面,sqlCommand是另一回事:如果重用它可能会遇到麻烦,但这更像是一个设计问题,而不是技术问题。

我建议您将所有数据库访问代码移动到另一个类(“DataProvider”/“DatabaseController”或您认为足够的任何名称)以正确封装代码部分。 表单不需要直接处理SqlConnection或sqlCommand对象,让它通过该控制器类型的公共方法间接发生:

 public class DataController { private SQLConnection Connection {get; set; public void DataTable LoadDataFromDatabase() { ... } ... }