使用c#

时间:2016-01-28 09:56:47

标签: c# mysql

我正在研究winform c#和phpmyadmin(数据库)。我有2个不同的数据库(db1和db2)。

我想在db1和db1中获取table1的一列数据 将这些信息存储在db2的table2中 这样如果db1列中有任何修改,db2应该自动更新。

这是我使用的逻辑,但它不起作用:

using MySql.Data.MySqlClient;
namespace GNMS
{
    public partial class doublecoonection : Form
    {
        DataSet ds;
        MySqlDataAdapter da1;
        MySqlDataAdapter da2;
        MySqlConnection connec1; //for 1st database
        MySqlConnection connec2;//for the 2nd one
        public doublecoonection()
        {
            InitializeComponent();
        }

    private void button1_Click(object sender, EventArgs e)
    {
        string str_conn = "server=localhost;username=root;password=****;port=3306";
        string query1 = "select id,city from enugro.city;"; //query1 for 1st DB
        connec1 = new MySqlConnection(str_conn);
        try
        {
            connec1.Open();
            da1 = new MySqlDataAdapter(query1, connec1);// this is how i stored results of first data in object da

            connec1.Close();

            connec2 = new MySqlConnection(str_conn); // open second connection
            connec2.Open();
            string query2 = "insert into enugro_africa.reports(id,city) value(da1);";
            da2 = new MySqlDataAdapter(query2, connec2);//query for 2nd DB
            ds = new DataSet();//store in the temporarily 
            da2.Fill(ds); //fill the dataset "ds"
            dataGridView1.DataSource = ds;//display the result in a datagridview


        }
        catch(Exception ex){
            MessageBox.Show(ex.Message);
        }
    }
}

}

请你帮帮我?

1 个答案:

答案 0 :(得分:0)

您正在使用断开连接的ADO.Net架构...这意味着您无需打开和关闭连接......数据适配器将为您完成此操作。删除该代码,然后重试

此外,您的查询2似乎不正确。 你必须调用第一个数据适配器的填充,它将填充你的数据集然后遍历你的数据集并调用第二个查询传递你想要传递的值。

或者,您可以将整个数据作为XMl传递给可以进行批量插入的存储过程