C# 如何在多线程中每秒给mysql数据库插入一条记录 简单示例代码
时间: 2024-10-24 07:17:31 浏览: 62
在C#中,要在多线程环境下每秒向MySQL数据库插入一条记录,你可以使用`System.Threading.Timer`配合ADO.NET来实现定时任务。首先确保已安装MySql.Data.MySqlClient库。以下是一个简单的示例代码:
```csharp
using System;
using System.Data;
using System.Threading;
using MySql.Data.MySqlClient;
public class DatabaseInsertion
{
private MySqlConnection connection;
private Timer timer;
public DatabaseInsertion(string connectionString)
{
// 创建数据库连接
connection = new MySqlConnection(connectionString);
connection.Open();
// 设置定时任务,每秒执行一次
timer = new Timer(InsertRecord, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
}
private void InsertRecord(object state)
{
try
{
using (var cmd = new MySqlCommand("INSERT INTO YourTable (Column1, Column2) VALUES ('Value1', 'Value2')", connection))
{
cmd.ExecuteNonQuery();
}
Console.WriteLine($"Inserted record at {DateTime.Now}");
}
catch (Exception ex)
{
Console.WriteLine($"Error inserting record: {ex.Message}");
}
}
public void Stop()
{
timer.Change(Timeout.Infinite, Timeout.Infinite); // 取消定时器
connection.Close(); // 关闭数据库连接
}
}
// 使用示例
class Program
{
static void Main(string[] args)
{
string connectionString = "your_mysql_connection_string_here";
var inserter = new DatabaseInsertion(connectionString);
// 开始插入记录
Console.WriteLine("Press Enter to stop the insertion.");
Console.ReadLine();
// 停止插入
inserter.Stop();
}
}
```
在这个例子中,你需要替换`YourTable`、`Column1`、`Column2`以及`connectionString`为你实际的表名、字段名和数据库连接字符串。
阅读全文