-3

代码 A(类)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace eBayERPSolution
{     
    public class dbconnection
    {           
        int flag = 0;

        public int Flag
        {
            get { return flag; }    
        }

        public dbconnection()
        {
            MySqlConnection con = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["mysqlconnect"].ConnectionString);

            try
            {
                con.Open();// I WANT TO ACCESS THIS CON OBJECT IN ANOTHER FORM
                flag = 1;
            }    
            catch (Exception e)
            {
                flag = 0;
                MessageBox.Show(e.Message );    
            }               
       }    
    }
}

代码 B(表格)

public  void button1_Click(object sender, EventArgs e)
{

    dbconnection check = new dbconnection();
    if (check.Flag == 0)
    {
         MessageBox.Show("Connected");
    }

    try
    {
         string query = "INSERT INTO ebayerp_sales (invdate,invno,paisapayid,phonenumber,emailid,paymentrecdate,customername,buyerid,billingaddress,shippingaddress,shippingpatner,awbno,shippingdate,status) VALUES('" + invdate.Text + "','" + int.Parse(invno.Text) + "','" + int.Parse(paisapayidtbox.Text) + "','" + int.Parse(phonenumbertbox.Text) + "','" + emailidtbox.Text + "','" + paymentrecdatetbox.Text + "','" + customernametbox.Text + "','" + buyeridtbox.Text + "','" + billingaddresstbox.Text + "','" + shippingaddresstbox.Text + "','" + shippingpatnertbox.Text + "','" + awbnotbox.Text + "','" + shippingdatetbox.Text  + "','" + statustbox.Text  + "')";
         MySqlCommand cmd = new MySqlCommand(query,---------------);//I WANT TO ACCESS CON OBJECT THERE.
4

3 回答 3

1

只需将MySqlConnection对象发布为您的dbconnection类的属性。

public class dbconnection
{
    MySqlConnection connection;
    int flag = 0;

    public int Flag
    {
        get { return flag; }    
    }

    public MySqlConnection Connection
    {
        get { return this.connection; }
    }

    public dbconnection()
    {
        this.connection = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["mysqlconnect"].ConnectionString);

        try
        {
            this.connection.Open();
            flag = 1;
        }    
        catch (Exception e)
        {
            flag = 0;
            MessageBox.Show(e.Message );    
        }               
   }    
}

...并从您的 Windows 窗体中使用它。

var myDbConnection = new dbconnection();
MySqlCommand cmd = new MySqlCommand(query, myDbConnection.Connection);
于 2013-07-14T13:40:12.513 回答
1

现在,您的 MySqlConnection 对象在构造函数中被声明为局部变量。相反,让它成为一个属性。

public class DbConnection
{
    ...

    public MySqlConnection Connection { get; set; }

    public DbConnection()
    {
        Connection = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["mysqlconnect"].ConnectionString);
        ....
    }
于 2013-07-14T13:40:12.970 回答
0

我建议您创建一个辅助类(也称为包装器),类似这样或使用这个 MySqlHelper。如果您愿意,也可以使用DbConnectionDbProviderFactory来获取一些通用方法。

于 2013-07-14T13:46:44.220 回答