我正在研究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);
}
}
}
}
请你帮帮我?
答案 0 :(得分:0)
您正在使用断开连接的ADO.Net架构...这意味着您无需打开和关闭连接......数据适配器将为您完成此操作。删除该代码,然后重试
此外,您的查询2似乎不正确。 你必须调用第一个数据适配器的填充,它将填充你的数据集然后遍历你的数据集并调用第二个查询传递你想要传递的值。
或者,您可以将整个数据作为XMl传递给可以进行批量插入的存储过程