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

news2024/11/26 20:35:59

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【开源】基于Vue.js的学生日常行为评分管理系统的设计和实现

项目编号: S 010 ,文末获取源码。 \color{red}{项目编号:S010,文末获取源码。} 项目编号:S010,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.2.1 登录注册模块2.2…

系列五、GC垃圾回收【四大垃圾算法-复制算法】

一、堆的内存组成 二、复制算法 2.1、发生位置 复制算法主要发生在新生代,发生在新生代的垃圾回收也被叫做Minor GC。 2.2、 Minor GC的过程 复制>清空》交换 1、eden、from区中的对象复制到to区,年龄1 首先,当eden区满的时候会触发第一…

基于IDEA进行Maven工程构建

Java全能学习面试指南:https://javaxiaobear.cn 1. 构建概念和构建过程 项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。 项目构建是软件开发过程中…

BlockCanary

卡顿检测框架,比如Activity Service ,BroadcastResoleve等,或者有延时执行造成卡顿 针对这些情况进行监控 引用: 初始化: 捕获异常结果: 源码: 使用双重锁的单例模式,enable 跳转到通知 主线程的监视器 Loop循环调用消息 根据dispathMessage判断是否造成卡顿,也就是消息的间…

python 导入工作目录的兄弟目录的模块

- 方法一:在工作目录和兄弟目录中都创建一个空文件 __init__.py,这样可以将它们变成Python包,然后在工作目录中使用相对路径导入兄弟目录的模块,例如 from ..brother import module。 - 方法二:在工作目录中使用 sys.p…

深入理解TensorFlow:计算图的重要性与应用

TensorFlow是一个流行而强大的机器学习框架,其核心概念之一是计算图(computation graph)。计算图在TensorFlow中扮演着重要角色,作为一种数据流图表示形式,它能够将计算的过程可视化,同时方便优化、分布式计…

【双十二预售】9.9元就能学《人工智能导论》!打卡赢红包,还有B站大会员等你领

双十二买什么最划算?那当然是知识!知识是永存的!是无价的! Mo 平台活动力度拉满!!! 原价 199.9 元的浙江大学《人工智能导论》课程 现在只要 9.9 元!!! 参…

Draft-P802.11be-D3.2协议学习__$36-EHT-PHY__$36.5-Parameters-for-EHT-MCSs

Draft-P802.11be-D3.2协议学习__$36-EHT-PHY__$36.5-Parameters-for-EHT-MCSs 36.3.5 EHT DUP transmission36.3.8 EHT modulation and coding schemes (EHT-MCSs)36.3.9 EHT-SIG modulation and coding schemes (EHT-SIG-MCSs)36.5 Parameters for EHT-MCSs36.5.1 EHT-MCSs fo…

K8s 命令行

前言:关于k8s 与 docker Docker和Kubernetes(通常简称为K8s)是两个在容器化应用程序方面非常流行的开源工具。 Docker: Docker 是一种轻量级的容器化平台,允许开发者将应用程序及其所有依赖项打包到一个称为容器的可移植容器中…

学习笔记5——对象、直接内存、执行引擎,string

学习笔记系列开头惯例发布一些寻亲消息 链接:https://baobeihuijia.com/bbhj/contents/3/192486.html 创建对象的步骤 对象对应的类是否被加载,链接(链接到真实的内存地址),初始化(类初始化)…

2023 年 数维杯(B题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2021年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看数维杯(B题)! …

【softmax和sidmod 快速学习和 用法对比】

Softmax函数和Sigmoid函数(也称为Logistic函数)在某些方面有相似之处,但它们在使用和适用场景上有一些不同。 首先,Sigmoid函数适用于二分类问题,将模型输出映射到0和1之间的概率值,表示样本属于正类的概率…

Git面经

Git八股文 第一章 git基础 1.1 什么是git git是一款免费的开源的分布式版本控制系统 1.2 为什么要使用git 为了保留之前的所有版本,方便回滚或修改 1.3 集中化版本控制系统和分布式版本控制系统的区别 集中化版本控制系统如svn,客户端连接到中央服…

RedHat公司及红帽认证介绍丨红帽认证等级介绍

RedHat公司及红帽认证介绍 红帽公司成立工1993年,是全球首家收入超10亿美元的开源公司,总部位于美国,分支机构遍布全球。红帽公司作头全球领先的开源和Linux系统提供商,其产品已被业界广泛认可并使用,尤其是RHEL系统在…

AD教程 (十七)3D模型的创建和导入

AD教程 (十七)3D模型的创建和导入 对于设计者来讲,现在3DPCB比较流行,3DPCB,除了美观之外,做3D的最终的一个目的,是为了去核对结构,就是我们去做了这么一个PCB之后,如果说…

033、微调

之——高级炼丹术 目录 之——高级炼丹术 杂谈 正文 1.标注数据集是很贵的 2.微调的思想 3.尝试 小结 杂谈 微调(Fine-tuning)是深度学习中的一种常见策略,它通常用于预训练模型在特定任务上的性能提升。微调的过程涉及在一个已经在大…

构建自定义ChatGPT,微软推出Copilot Studio

11月16日,微软在美国西雅图举办“Microsoft Ignite 2023”全球开发者大会。本次人工智能成为重要主题,微软几乎把所有产品都集成了生成式AI功能并发布了一系列全新产品。 其中,微软重磅推出了Copilot Studio(预览版)&…

001.前置知识

1、硬件 我们知道,组成计算机的硬件主要有“主机”和“输入/输出设备”。 主机包括机箱、电源、主板、CPU(Central Processing Unit,中央处理器)、内存、显卡、声卡、网卡、 硬盘、光驱等。输入/输出设备包括显示器、键盘、鼠标…

五分钟,Docker安装kafka 3.5,kafka-map图形化管理工具

首先确保已经安装docker,如果是windows安装docker,可参考 wsl2安装docker 1、安装zk docker run -d --restartalways -e ALLOW_ANONYMOUS_LOGINyes --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name zookeeper -p 2181:218…

ssm+vue的OA办公系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的OA办公系统(有报告)。Javaee项目,ssm vue前后端分离项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍&a…