使用Windows窗体将C#连接到MySQL数据库

问题描述

im是C#的新增功能,并尝试将Windows窗体连接到MysqL数据库。 问题是我收到以下错误,找不到解决此问题的方法

错误CS0120,非静态字段,方法属性'Login.con()需要对象引用

这是Form.cs

using MysqL.Data.MysqLClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Log
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void BtnConnect_Click(object sender,EventArgs e)
        {
            Login.con();
        }
    }
}

这是应该建立连接的Login.cs文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MysqL.Data.MysqLClient;
using System.Windows.Forms;
using MysqL.Data;
using System.Data;

namespace Log
{
    public class Login
    {
        public MysqLConnection connection;
        private string server;
        private string database;
        private string user;
        private string password;
        private string port;
        private string connectionString;
        private string sslM;

        public Login()
        {

            server = "localhost";
            database = "test";
            user = "root";
            password = "root";
            port = "3306";
            sslM = "none";

            connectionString = String.Format("server={0};port={1};user id={2}; password={3}; database={4}; SslMode={5}",server,port,user,password,database,sslM);

            connection = new MysqLConnection(connectionString);
        }

        public void con()
        {
            try
            {
                connection.open();
                MessageBox.Show("successful connection");
                connection.Close();
            }
            catch (MysqLException ex)
            {
                MessageBox.Show(ex.Message + connectionString);
            }
        }
    }
}

解决方法

您需要实例登录类...

Login login = new Login();
login.con()
,

您必须创建Login类的新实例。试试:

public void BtnConnect_Click(object sender,EventArgs e)
{
    Login login = new Login();        
    login.con();
}