2016-01-28 3 views
-1

i'am работает над winform C# и phpmyadmin (база данных). У меня есть две базы данных differents (db1 и db2).заполнить базу данных, используя данные другой базы данных в C#

я хочу получать данные одного столбца table1 в DB1 и хранить эту информации в table2 из db2 , что если есть какие-либо изменения в колонке DB1, DB2, должны быть automacally обновлен.

это логика, что я использовал, но это не работает:

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); 
     } 
    } 
} 

}

Пожалуйста, может у мне помочь ?.

+2

Слышали [Репликация] (http://stackoverflow.com/questions/3402794/mysql-replication)? Если не _please_ провести некоторое исследование, прежде чем задавать такой вопрос, на который уже ответил. – kayess

ответ

0

Вы используете отключенную архитектуру ADO.Net ... Это означает, что вам не нужно открывать и закрывать соединение ... Data Adapter сделает это за вас. Удалите этот код и повторите попытку

Кроме того, ваш запрос 2 кажется неправильным. , вы должны вызвать заполнение первого адаптера данных, который заполнит ваш набор данных, а затем перебирает ваш набор данных и вызывает второй запрос, передавая значение, которое вы хотите передать.

В качестве альтернативы, вы можете передать всю информацию в формате XML для хранимой процедуры, которые могут сделать объемную вставку

Смежные вопросы