c# - 当我将 MySqlConnection 放在其他类中并从其他表单调用它时,如何创建 MySqlCommand

标签 c# mysql class visual-studio-2013

优秀的程序员。任何人都可以用 c# 帮助我。每当我想插入或执行任何查询时,如何从其他表单调用此类。

这是我的名为 DBConnection 的类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace WindowsFormsApplication2
{
    class DBConnector
    {
        private MySqlConnection con;
        private String server;
        private String db;
        private String uid;
        private String password;

        public DBConnector()
        {
            Initialize();
        }

        private void Initialize()
        {
            server = "localhost";
            db = "test";
            uid = "root";
            password = "";
            String connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
            db + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            con = new MySqlConnection(connectionString);
        }

        public void DatabaseConnector()
        {
            server = "localhost";
            db = "test";
            uid = "root";
            password = "";
            String connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" +
            db + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            con = new MySqlConnection(connectionString);
        }
        public void OpenCon()
        {
            con.Open();
        }
        public void CloseCon()
        {
            con.Close();
        }

    }
}

每当我按下按钮时,这是我的表单按钮类。然后就会查询。我的问题是如何调用 con = new MySqlConnection(connectionString); 来创建 MySqlCommand。请帮忙。我很困惑。

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;
using MySql.Data.MySqlClient;

namespace WindowsFormsApplication2
{
    public partial class FrmAdd : Form 
    {

        public FrmAdd()
        {
            InitializeComponent();
        }

        private void FrmAdd_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

            var mycon = new DBConnector();

            try
            {
                mycon.OpenCon();
                MessageBox.Show("Well done!");
            }
            catch (MySqlException  ex)
            {
                MessageBox.Show("You failed!" + ex.Message);
            }


            string query = "INSERT INTO info values (1,'John','Mac','P',21)";



        }
    }
}

最佳答案

为了访问另一个类中的MySqlConnection对象,您需要将DbConnector类标记为internalpublic,即它应该变成:

public class DbConnector{
    ...
}

您还需要在属性本身上设置访问修饰符并添加 getter,如下所示:

public MySqlConnection con { get; }

然后,在实例化 DbConnector 后的 FrmAdd 中,您可以使用数据库对象,例如 mycon.con.SomeMethod()

另外,为什么有两个方法 DatabaseConnector()Initialize() 如果它们做同样的事情?

关于c# - 当我将 MySqlConnection 放在其他类中并从其他表单调用它时,如何创建 MySqlCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34377248/

相关文章:

c# - 如何在用户的电子邮件中发送购物项目

java - 如何在不知道列类型的情况下获取列的值

php - PDO::FETCH_CLASS 参数

c# - 无法构建 .Net core 2.2 项目?找不到类型或命名空间名称 'System'

c# - 是否可以从 C# 中的控制台读取未知数量的行?

c++ - C++ 中的 union 实际上是一个类吗?

java - 在面向 Java 开发人员的 Eclipse 中使用 .class 文件

c++ - 返回其自身类型的模板类方法的正确签名

c# - 最佳线程队列示例/最佳实践

mysql - Magento 版本。 1.9.1.0 : Sort Products by Quantity and Price descending