c# MySql类//连接打开和关闭

本文关键字:连接 MySql | 更新日期: 2023-09-27 18:02:39

我遇到了一个问题。我栈!我不知道我是否需要一个新的课程!我想要一个方法来关闭连接通过一个按钮点击。

我已经创建了构造函数:

   public string Server;
   public string Username;
   public string Pwd;
   public string DB;

   MySqlConnection conn;
   string ConnString;
   public DBVerb(string eServer, string eUsername, string ePwd, string eDB)
   {
       this.Server = eServer;
       this.Username = eUsername;
       this.Pwd = ePwd;
       this.DB = eDB;
   }

和这两个方法:

        public void Connect(System.Windows.Forms.Label lblStatus)
    {
        try
        {                 
            ConnString = String.Format("server={0};user id={1}; password={2}; database={3}; pooling=false",
                                               this.Server, this.Username, this.Pwd, this.DB);
            conn = new MySqlConnection();
            conn.ConnectionString = ConnString;
            if (conn != null)
                conn.Close();

            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                lblStatus.Text = String.Format("Verbindung zu {0} user: {1} Zeit: {2}", this.Server, this.Username, DateTime.Now.ToString());
            }
            else
            {
                MessageBox.Show("Felher");
            }

        }
        catch (Exception Ex)
        {
            MessageBox.Show(Ex.Message, "Fehler:", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
    public void ClConnect()
    {
        conn = new MySqlConnection();
        if (conn.State == ConnectionState.Open)
        {
            conn.Close();
        }
    }

这里我调用了方法:

       private void cmdHerstellen_Click(object sender, EventArgs e)
    {
        string lServer = txtBServ.Text;
        string lUID = txtBUid.Text;
        string lPawd = txtBPass.Text;
        string lDB = txtBDat.Text;

        DBVerb VerbindungHerstellen = new DBVerb(lServer, lUID, lPawd, lDB);
        VerbindungHerstellen.Err();
        VerbindungHerstellen.Connect(lblStatus);

    }
    private void cmdAbbr_Click(object sender, EventArgs e)
    {

    }

如果我调用ClConnect()方法,我必须为参数提供参数,但我已经这样做了,所以它不起作用。

你知道怎么做吗?

c# MySql类//连接打开和关闭

将dbconnection存储为类中的字段。当你想关闭它时,你不想用conn = new MySqlConnection();给它分配一个新的连接对象,而只是想删除那条线,并用检查来替换它,看看conn是否为空。如果它是空的,那么不需要做任何工作(或者可能是一个错误),如果它不是空的,那么你可以检查它是否打开,如果合适的话关闭。

您可能还需要注意在connect方法中创建新对象的位置。如果conn已经存在,您可能不想(或不需要)创建新的连接对象。

我最后的评论是,用户需要点击一个按钮来关闭你的连接,这听起来有点不对劲。这应该是代码所担心的,而不是用户。然而,我显然不知道你在做什么,所以我不能说这绝对是错误的,只是感觉有点不对。:)