• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >MsSql > sql server 数据库简繁转换

sql server 数据库简繁转换

作者: 字体:[增加 减小] 来源:互联网 时间:2017-12-17

通过本文主要向大家介绍了数据库,mssql,sql server等相关知识,希望本文的分享对您有所帮助

转换要求:

1、数据库表必须有主键

2、表之间有外键关系会报错

3、VS手动添加对Microsoft.VisualBasic的引用

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using Newtonsoft.Json;
using System.Text.RegularExpressions;
using System.Data.OleDb;

namespace ConsoleApp1
{
    class Program
    {
        string constr = "Data Source=.;Initial Catalog=KyjhrMis91_backup;Integrated Security=True"
        static void Main(string[] args)
        {

            //var str=selectJson(sql);
            //updateTable(ConvTable(str),sql);
            //var str=JsonConvert.SerializeObject(selectTable(sql));
            selectTable("TrnRec");
            Console.Read();
        }
        /// <summary>
        /// 查询表并且转换结构并进行繁体转简体
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="constr"></param>
        /// <returns></returns>
        static DataTable selectTable(string TableName)
        {
            string sql = "SELECT * FROM " + TableName;
            SqlDataAdapter sda = new SqlDataAdapter(sql, constr);
            SqlCommandBuilder scb = new SqlCommandBuilder(sda);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            try
            {
                //Console.WriteLine(ConvTable(dt).Rows.Count);
                //DataTable dt2 = ConvTable(dt);
                DataTable dt2 = dt.Copy();
                setColType(dt, TableName);//转换字段结构
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    for (int j = 1; j < dt.Columns.Count; j++)
                    {
                        if (dt.Rows[i][j].GetType() == "".GetType())
                        {
                            string str = StrConv(dt2.Rows[i][j].ToString());
                            dt.Rows[i][j] = str;
                        }
                    }
                    Console.WriteLine("已更新第{0}行数据", i + 1);
                }
                int num = sda.Update(dt);
                Console.WriteLine("更新了{0}行数据", num);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return dt;
        }
        /// <summary>
        /// 转换表字段排序规则为简体
        /// </summary>
        /// <param name="dt"></param>
        static void setColType(DataTable dt, string TableName)
        {
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                if (dt.Columns[i].DataType == "".GetType())
                {
                    string name = dt.Columns[i].ColumnName;
                    string sqlstr = "declare @len int,@name nvarchar(20),@sqlstr nvarchar(1000);set @name='" + name + "';SELECT @len=length FROM SYSCOLUMNS where name=@name and ID=OBJECT_ID('" + TableName + "');set @sqlstr='ALTER TABLE " + TableName + " ALTER COLUMN '+@name +' varchar('+CONVERT(NVARCHAR(10), @len)+') COLLATE Chinese_PRC_CI_AS';exec(@sqlstr);";
                    exec(sqlstr);
                }
            }
        }
        /// <summary>
        /// 执行sql语句
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="constr"></param>
        static void exec(string sql)
        {
            using (SqlConnection con = new SqlConnection(constr))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.ExecuteNonQuery();
            }
        }

        #region IString 成员
        /// <summary>
        /// 简繁转换
        /// </summary>
        /// <param name="x"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static string StrConv(string x, string type = "简体")
        {
            String value = String.Empty;
            switch (type)
            {
                case "繁体"://转繁体
                    value = Microsoft.VisualBasic.Strings.StrConv(x, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);
                    break;
                case "简体":
                    value = Microsoft.VisualBasic.Strings.StrConv(x, Microsoft.VisualBasic.VbStrConv.SimplifiedChinese, 0);
                    break;
                default:
                    break;
            }
            return value;
        }
        #endregion
    }
}

 

 

 

可能用到的SQL语句

1、用于设置表主键

 

declare @tabNAme nvarchar(20),@sqlstr1 nvarchar(1000),@id nvarchar(20)
set @tabName='EmpChg'--你的表名字
set @id='rid'--你要设置的主键名字
set @sqlstr1 ='ALTER TABLE '+@tabName+' ADD CONSTRAINT PK_EmployeesID PRIMARY KEY ('++');'+'SELECT * FROM '+@tabName
exec(@sqlstr1)

2、查询重复数据以及删除重复数据

 

 

select [id] from [TableName] group by [id] having count(*)>1

delete [TableName] where [id] in (select [id] from [TableName] group by [id] having count(*)>1) and [其他判断条件]

 

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQL Server 移动系统数据库
  • SQL2005查看死锁存储过程sp_who_lock
  • 更改SQL Server 2005数据库中tempdb位置的方法
  • 简述SQL Server 2005数据库镜像相关知识
  • sql server 2005数据库备份还原图文教程
  • SQL Server 2005 数据库复制详细介绍
  • Win2008中安装的MSSQL2005后无法访问的解决方法
  • 如何在SQL Server 2005数据库中导入SQL Server 2008的数据
  • mssql数据库游标批量修改符合条件记录的方法
  • Sql Server2005实现远程备份数据库

相关文章

  • 2017-05-11安装SQL2005提示 找不到任何SQL2005组件的问题解决方案
  • 2017-05-11SQL2008定时任务作业创建教程
  • 2017-05-11图文详解SQL Server 2008 R2安装配置方法
  • 2017-05-11SQL Server 2008及更高版本数据库恢复方法之日志尾部备份
  • 2017-05-11SQLServer 2008 新增T-SQL 简写语法
  • 2017-05-11SQL2005 自动备份的脚本
  • 2017-05-11SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)
  • 2017-05-11SQL Server 2008中SQL之WaitFor使用介绍
  • 2017-05-11Linux编译mssql扩展使用php连接sqlserver2008的使用步骤
  • 2017-05-11基于SQL2005 SQL2008 表结构信息查询升级版的详解(含外键信息)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案
    • sql server 2008 忘记sa密码的解决方法
    • sqlserver2005打造自动备份的维护计划图解教程
    • sql2005 批量更新问题的解决方法
    • SQL Server 2005删除日志文件的几种方法小结
    • SQL SERVER 2008 中三种分页方法与比较
    • sqlserver2005 master与msdb数据库备份恢复过程
    • SQL Server 2008及更高版本数据库恢复方法之日志尾部备份
    • Sql2005注射辅助脚本[粗糙版]
    • 安装sql server 2008时的4个常见错误和解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有