当前位置: 首页 > 知识库问答 >
问题:

在visual studio C#中从MySQL获取数据并将其插入MS SQL SERVER

漆雕安晏
2023-03-14

我正在尝试从Mysql数据库中读取一个表,并将其全部存储在ms sql server的C#中。我正在正确地读取Mysql.我的问题是如何将我在ms sql中读取的数据存储在代码字符串constring=ConfigurationManager.ConnectionStrings[“cnxMySQL”].ConnectionString的第二部分中;

        MySqlConnection conn = new MySqlConnection(constring);

        MySqlCommand cmd = new MySqlCommand("SELECT * FROM i_evt WHERE Updt=0",conn);

        conn.Open();


        cmd.ExecuteNonQuery();




        string constring2 = ConfigurationManager.ConnectionStrings["cnxsql"].ConnectionString;

        SqlConnection conn2 = new SqlConnection(constring2);

        SqlCommand cmd2 = new SqlCommand("INSERT INTO i_evt",conn2);

        conn2.Open();




        cmd2.ExecuteNonQuery();

        conn2.Close();
        conn.Close();

共有2个答案

贺飞星
2023-03-14

参考下面的代码,您可以优化这段代码,因为有大量的空间用于优化,但这对于初学者来说很简单,可以理解基本水平:

MySqlConnection conn = new MySqlConnection(constring);
MySqlCommand cmd = new MySqlCommand("SELECT * FROM i_evt WHERE Updt=0", conn);
conn.Open();
DataSet data;
using (MySqlDataAdapter sqlAdapter = new MySqlDataAdapter(mySqlCommand))
    {
        data = new DataSet();
        sqlAdapter.Fill(data);
    }

string constring2 = ConfigurationManager.ConnectionStrings["cnxsql"].ConnectionString;
SqlConnection conn2 = new SqlConnection(constring2);
conn2.Open();
for (int i = 0; i < data.Tables[0].Rows.Count; i++)
    {
        SqlCommand cmd2 = new SqlCommand("INSERT INTO i_evt(column1,column2) values(@col1,@col1)", conn2);
        cmd2.Parameters.AddWithValue("col1", data.Tables[0].Rows[i][0].ToString());
        cmd2.Parameters.AddWithValue("col12", data.Tables[0].Rows[i][1].ToString());
        cmd2.ExecuteNonQuery();
    }
conn2.Close();
conn.Close();
梁俊友
2023-03-14

我有一个相反的问题,我必须将数据从MS SQL Server转移到MySQL。 我已经使用了下面的代码段,但我个人并不建议将其用于生产,因为它会逐行添加数据。 但可以将其用于小型数据集或本地环境。 您可以添加一个try-catch,也可以根据需要进行自定义。 这仅供参考。

public void Main()
{
    var table = GetDataTableFromSQLServer();
    AddToMySQL(table);
}

private DataTable GetDataTableFromSQLServer()
{
    var connection = GetSqlServerConnection();
    string query = "SELECT Column1, Column2 FROM TableName WHERE Column3 is NOT NULL";

    var command = new SqlCommand(query, connection);
    connection.Open();
    var reader = command.ExecuteReader();
    DataTable table = new DataTable();
    table.Load(reader);
    connection.Close();

    return table;
}

private void AddToMySQL(DataTable table)
{
    var connection = GetMySQLConnection();
    connection.Open();
    string query = "INSERT INTO TableName (column1, column2) VALUES(@column1, @column2);";

    int i = 0;
    foreach (DataRow row in table.Rows)
    {
        if (i % 1000 == 0)
        {
            // Closing & Reopening connection after 1000 records
            connection.Close();
            connection.Open();
        }

        Console.WriteLine($"Adding ({++i}/{table.Rows.Count})");

        MySqlCommand command = new MySqlCommand(query, connection);
        command.Parameters.Add(new MySqlParameter("@column1", MySqlDbType.Int64) { Value = row.Field<long>("column1").Trim() });
        command.Parameters.Add(new MySqlParameter("@column2", MySqlDbType.VarChar) { Value = row.Field<string>("column2").Trim() });

        var affectedRows = command.ExecuteNonQuery();
    }

    connection.Close();
}

private SqlConnection GetSqlServerConnection()
{
    string connectionString = @"Data Source=...";
    SqlConnection connection = new SqlConnection(connectionString);
    return connection;
}

private MySqlConnection GetMySQLConnection()
{
    MySqlConnectionStringBuilder connectionBuilder = new MySqlConnectionStringBuilder
    {
        Server = "...",
        Database = "...",
        UserID = "...",
        Password = "...",
        Port = 3306
    };

    MySqlConnection connection = new MySqlConnection(connectionBuilder.ToString());
    return connection;
}
 类似资料:
  • 我是一个初学者,我想用Python写一个不和谐的机器人。我已经连接到我的数据库,我从数据库中获取数据,但我不知道如何将数据发送到discord服务器通道。

  • 在我的应用程序中,我试图创建一个实时提要(如Instagram提要或Facebook提要),其中包含包含图像、标题、用户用户名等图像计数的帖子。我创建了一个片段,用于拍摄图片、添加标题并将其从位图转换为字符串。我可以成功地将这些帖子(对象)发布到firebase数据库,但从数据库中获取每篇帖子的值并将其添加到arraylist中是行不通的CameraFragment(为每篇帖子向数据库添加帖子值)

  • 我已经在Java中制作了一个GUI,它与MySQL服务器连接并插入,删除,更新数据。我在此GUI上有一个部分,您可以在文本区域中编写MySQL查询,结果显示在上。一切都很好!我可以打印或将它们保存到文本文件中! 现在,我想添加另一个特性:当我双击一个特定单元格时,我想更改的数据,并且我想通过单击按钮来更新MySQL表中的数据。 我在网上找遍了,也找不到好的例子,也找不到好的解决办法。我拥有的< c

  • 问题内容: 我正在尝试使用angularjs从前端向mysql db插入数据。 但是,即使没有错误消息,它也不会插入数据库 。以下是我使用的代码。 index.html script.js View1.html 以下是我的php文件 insert.php 我知道我在这里做一些愚蠢的事情。我今天才刚刚开始学习angularjs。当我尝试将纯HTML的php代码插入db时,它的工作原理非常完美。希望有

  • 问题内容: 我有一个应用程序,我想从excel读取数据,将其插入数据库,然后为特定用户生成pdf报告。我进行了很多搜索,但没有具体说明这两种情况。 问题答案: 使用PHPExcel库读取Excel文件并将数据传输到数据库中 一切都变得非常取决于您的数据库以及如何在其中构造数据

  • 您好,这里的场景是我想在页面的文本字段中输入一些值,在此之前,我需要使用xpath查找文本字段。 所以在这里,我在Excel表中有这些字段的值和xpath。如何让上面的代码工作?两个片段都不起作用或显示任何错误。 如能回复,我们将不胜感激。

  • 问题内容: 我可以使用其他某种语言来解决它,但我渴望学习更多SQL。 有没有办法解决这个问题: 我有两个表(并且不能更改结构),一个表包含一些数据,另一个表包含一些其他信息。它们以这种方式相关:。 我想怎么办:如果没有数据集,但是,我想将它复制过来,使得在年底有相同数量的两个表中的数据集。我以这种方式尝试过,但不幸的是它不起作用: 有人有想法吗,还是最后没有可能?提前致谢! 问题答案: 您可以用来

  • 我是groovy的初学者,正在尝试解析XML并将结果记录插入MySQL数据库示例SOAP XML响应 SOAPUI GROOVY teststep脚本 提前感谢您的任何帮助!