C#实现将Mysql数据迁移到SQL数据库

前提源数据库及目标数据库需要表结构一致

using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;

namespace MysqlToSQL
{

    public partial class Form1 : Form
    {
        private static string mysqlConnString = "";
        private static string sqlConnString = "";
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (txb_mysql_connstring.Text.Trim() == "" || txb_sql_connstring.Text.Trim() == "")
            {
                MessageBox.Show("请填写连接字符串!");
                return;
            }

            mysqlConnString = txb_mysql_connstring.Text;
            sqlConnString = txb_sql_connstring.Text;
            listBox1.Items.Clear();
            txb_sql.Text = "";
            using (MySqlConnection mysqlconn = new MySqlConnection(mysqlConnString))
            {
                mysqlconn.Open();
                string query = "Show Tables";
                using (MySqlCommand comm = new MySqlCommand(query, mysqlconn))
                {
                    using (MySqlDataReader reader = comm.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            string tableName = reader.GetString(0);
                            listBox1.Items.Add(tableName);
                        }
                    }
                }
            }

            

        }
        static void ClearSQLServerTable(string TableName)
        {
            using (SqlConnection sqlconn = new SqlConnection(sqlConnString))
            {
                sqlconn.Open();
                using (SqlCommand sqlCommand = new SqlCommand("TRUNCATE TABLE " + TableName,sqlconn))
                {
                    sqlCommand.ExecuteNonQuery();
                }
            } 
        }
        static void CopyDataFromSQLToSQLServer(string TableName)
        {
            using (MySqlConnection mysqlconn = new MySqlConnection(mysqlConnString))
            using (SqlConnection sqlconn= new SqlConnection(sqlConnString))
            {
                mysqlconn.Open();
                sqlconn.Open();
                using (MySqlCommand mysqlcomm = new MySqlCommand("select * from " + TableName, mysqlconn))
                using (MySqlDataAdapter dataAdapter = new MySqlDataAdapter(mysqlcomm))
                {
                    using (MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter))
                    {
                        using (var dataTable = new System.Data.DataTable())
                        {
                            dataAdapter.Fill(dataTable);
                            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlconn))
                            {
                                bulkCopy.DestinationTableName= TableName;
                                bulkCopy.WriteToServer(dataTable);
                            }
                        }
                    }
                }
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedItem != null)
            {
                txb_sql.Text = listBox1.SelectedItem.ToString();
            }
            else
            {
                txb_sql.Text = "";
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (txb_sql.Text.Trim() == "")
            {
                MessageBox.Show("Select a Table!");
                return;
            }
            try
            {
                ClearSQLServerTable(txb_sql.Text.Trim());
                CopyDataFromSQLToSQLServer(txb_sql.Text.Trim());
                MessageBox.Show(txb_sql.Text + " Copy Done!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156715.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录 Day48 动态规划16 T647 回文子串 T516最长回文子序列

LeetCode T647 回文子串 题目链接:647. 回文子串 - 力扣(LeetCode) 题目思路: 我们仍然使用动规五部曲来分析题目 1.确定dp数组含义 这里dp数组表示从下标从i到j这段子串是不是回文子串,是就是true,不是就是false 2.确定dp数组的递推公式 举个例子 这里…

012.tr

1、用tr进行转换 tr是Unix命令行专家工具箱中的一件万能工具。它可用于编写优雅的单行命令。tr可以对来自标准输入的内容进行字符替换、字符删除以及重复字符压缩。tr是translate(转换)的简写,因为它可以将一组字符转换成另一组字符。 tr只…

ADI 阻抗测量开发板AD5940调试

硬件环境: 评估板A,阻抗测试板 EVAL-AD5940BIOZ,阻抗测试板信息链接如下: https://wiki.analog.com/resources/eval/user-guides/eval-ad5940/hardware/eval-ad5940bioz 评估板B,MCU控制板 EVAL-ADICUP3029,控制板信息链接如下…

【python】——控制语句和组合数据类型(其二)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

鸿蒙OS应用开发初体验

什么是HarmonyOS? HarmonyOS(鸿蒙操作系统)是华为公司开发的一款基于微内核的分布式操作系统。它是一个面向物联网(IoT)时代的全场景操作系统,旨在为各种类型的设备提供统一的操作系统平台和开发框架。Har…

docker删除镜像命令

在Docker中删除镜像的命令是 docker rmi。这个命令用于删除一个或多个Docker镜像。使用这个命令时,你需要指定要删除的镜像的ID或名称。以下是一些常用的用法: 删除单个镜像: docker rmi [IMAGE_ID或REPOSITORY:TAG]例如,如果你知…

最大似然估计的介绍

最大似然估计(Maximum Likelihood Estimation,简称MLE)是一种用于估计概率分布中参数的方法。该方法的核心思想是选择使得观察到的数据在给定模型下出现的概率最大的参数值作为估计值。 最大似然估计具有很好的性质,包括渐进正态性…

LTE信令流程及业务流程

1、Attach过程 完成完成鉴权、身份验证、用户注册以外,包含默认承载的建立 1)在LTE网络中,PDN连接是默认承载的建立,它是在EPS承载中建立的,主要用于在UE和PDN之间传输数据。 2)在建立PDN连接时,会通过EPS隧道连接到PD…

Windows10安装麒麟桌面V10双系统

概述 想要在Windows10操作系统中安装麒麟V10的桌面操作系统(Kylin-Desktop-V10-Professional-Release-Build1-210203-X86_64) 安装前准备 1、先搞清楚自己的电脑类型 A MBR传统bios单硬盘 B MBR 传统bios双硬盘(SSD固态硬盘机械硬盘&…

atsec at the PCI Community Meeting 2023

atsec participated in the PCI (Payment Card Industry) Security Standards Council 2023 Asia-Pacific Community Meeting held in Kuala Lumpur, Malaysia, on 15 and 16 November and hosted a booth. atsec’s principal consultant Di Li provided a presentation on “…

OceanMind海睿思数据中台迎来重磅更新,使用体验全面提升!

为了帮助客户拥有更好的产品使用体验,帮助实施数据治理项目降本增效,OceanMind海睿思的迭代更新从未止步。 OceanMind数据中台再度迎来重磅更新,该版本在大数据方面进行了规划设计,吸纳了30来自于项目的实际需求,更贴…

openldap-sasl身份认证镜像

背景 在这篇文章中,AD域信息同步至openLDAP我们使用了SASL将身份验证从OpenLDAP委托给AD”这种方案,本文主要来构建此方案的docker镜像。 sasl官网:Cyrus SASL bitnami/openldap镜像地址:containers/Dockerfile bitnami/openl…

React升级到18版本

前言 升级前react版本是16.9.0,react-dom版本为16.9.0,react-router-dom为5.1.2版本。 安装 // npm npm install react react-dom// yarn yarn add react react-dom// pnpm pnpm install react react-dom启动项目 此时,项目可以正常运行&…

计算机领域十大天神

✍️作者简介:沫小北/码农小北(专注于Android、Web、TCP/IP等技术方向) 🐳博客主页:沫小北/码农小北 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN 🔔如果文章对您有一定的帮助请&…

CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?

【导师不教?我来教!】同济计算机博士半小时就教会了我五大深度神经网络,CNN/RNN/GAN/transformer/LSTM一次学会,简直不要太强!_哔哩哔哩_bilibili了解的五大神经网络,整理笔记如下: 视频是唐宇…

git的简单使用

git 的简单使用 前言: 为了方便理解,文中一些内容表达的不是十分准确,如有错误,欢迎大家友善的指出。 接下来就开始了!! 使用git其实就是围绕下面这个图展开的,大家可以先看下图&#xff0c…

到站上海!见证这座零碳园区的绿色低碳新选择

不知不觉中,科士达新能源的零碳足迹已遍布五洲四海,为全球各地,千行百业、千家万户,带去了源源不断的绿色能源和低碳新选择。再次启航,这一站,抵达上海世博园。 小机身,大配置,灵活适…

【开源】基于Vue.js的社区买菜系统的设计和实现

项目编号: S 011 ,文末获取源码。 \color{red}{项目编号:S011,文末获取源码。} 项目编号:S011,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1…

Pandas 将DataFrame中单元格内的字典dict拆分成单独的列

核心是应用 pd.Series, 具体操作如下: import pandas as pddata {years: [2025],week: [{f"week_{i}": i for i in range(3)}]} df pd.DataFrame(data) print(df)df pd.concat([df, df[week].apply(pd.Series)], axis1).drop(week, axis1)…

java学习part03基本类型

22-变量与运算符-标识符的使用_哔哩哔哩_bilibili 1.标识符(变量)命名规则 2.变量类型 3.整型 4.浮点型 5.char字符 6.布尔boolean 7.基本类型的自动提升 8.强制转换 9.String String只能连接 会把其他类型的表面量转成字符串比如"true" &…