c#编写pi数据库定时发送到mysql
时间: 2023-07-01 08:10:20 浏览: 59
你可以使用System.Timers命名空间中的Timer类来实现定时发送操作。以下是一个简单的示例代码:
```csharp
using System;
using System.Timers;
using System.Data;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
class Program
{
static void Main(string[] args)
{
Timer timer = new Timer();
timer.Interval = 60000; // 每分钟执行一次
timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
timer.Enabled = true;
Console.WriteLine("定时器已启动,按任意键退出。");
Console.ReadKey();
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
string connStr1 = "Data Source=PI_SERVER;Initial Catalog=PI_DATABASE;User ID=PI_USER;Password=PI_PASSWORD";
string connStr2 = "server=localhost;database=mysql_database;uid=mysql_user;password=mysql_password";
string query = "SELECT * FROM pi_table";
using (SqlConnection conn1 = new SqlConnection(connStr1))
using (MySqlConnection conn2 = new MySqlConnection(connStr2))
{
conn1.Open();
SqlCommand cmd1 = new SqlCommand(query, conn1);
SqlDataReader reader = cmd1.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(reader);
conn2.Open();
MySqlCommand cmd2 = new MySqlCommand("TRUNCATE TABLE mysql_table", conn2);
cmd2.ExecuteNonQuery();
MySqlBulkCopy bulkCopy = new MySqlBulkCopy(conn2);
bulkCopy.DestinationTableName = "mysql_table";
bulkCopy.WriteToServer(dataTable);
}
Console.WriteLine("数据已成功发送到MySQL数据库。");
}
}
```
你需要将PI_SERVER、PI_DATABASE、PI_USER和PI_PASSWORD替换为你的PI数据库连接信息,将localhost、mysql_database、mysql_user和mysql_password替换为你的MySQL数据库连接信息。此外,你还需要在项目中添加System.Data.SqlClient和MySql.Data.MySqlClient引用。