最数据
码龄16年
求更新 关注
提问 私信
  • 博客:1,127,610
    社区:75
    问答:28
    1,127,713
    总访问量
  • 64
    原创
  • 359
    粉丝
  • 44
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
加入CSDN时间: 2010-06-09

个人简介:互联网科技博主 | 独立开发者 | ZuiData

博客简介:

最数据的专栏

博客描述:
互联网科技博主 | 独立开发者
查看详细资料
个人成就
  • 获得297次点赞
  • 内容获得75次评论
  • 获得1,092次收藏
  • 代码片获得1,317次分享
  • 博客总排名1,789,264名
创作历程
  • 1篇
    2025年
  • 2篇
    2024年
  • 3篇
    2023年
  • 7篇
    2022年
  • 24篇
    2021年
  • 19篇
    2020年
  • 18篇
    2019年
  • 72篇
    2018年
  • 6篇
    2017年
  • 8篇
    2016年
  • 12篇
    2015年
  • 15篇
    2014年
  • 27篇
    2013年
  • 13篇
    2012年
  • 10篇
    2011年
成就勋章
TA的专栏
  • .NET 6.0
    2篇
  • .net core
    15篇
  • Java
    2篇
  • WinForm
    2篇
  • 小程序
    1篇
  • 浏览器
  • 推送服务
    1篇
  • C#
    97篇
  • SQL Server
    26篇
  • javascript
    9篇
  • Aspx
    6篇
  • Html
    10篇
  • Ajax
    2篇
  • Xml
    2篇
  • 树莓派
    19篇
  • ios
  • Android
    2篇
  • Silverlight
    22篇
  • WPF
  • 实用工具
    4篇
  • Excel
    1篇
  • Oracle
    16篇
  • visual studio
    6篇
  • eCharts
  • PS
    1篇
  • git
    4篇
  • EntityFramework
    1篇
  • MVC
    7篇
  • RTSP
    3篇
  • RTMP
    1篇
  • 直播
    1篇
  • Linux
    13篇
  • Redis
    7篇
  • Token
    2篇
  • TCP/IP
    5篇
  • UDP
    1篇
  • socket
    7篇
  • Windows Service
    2篇
  • 串口
    1篇
  • WebApi
    3篇
  • MQTT
    1篇
  • Docker
    12篇

TA关注的专栏 2

TA关注的收藏夹 0

TA关注的社区 1

TA参与的活动 0

兴趣领域 设置
  • 后端
    架构
  • 微软技术
    c#.netasp.net
创作活动更多

AtomGit「码动四季·开源同行」秋季征稿活动

秋季征稿主题:开源成果经验分享 成果不止一种形态,我们为你准备了六大赛道,总有一款适合你: 开源项目成果复盘 把项目一年/一季的成长摊开来看:里程碑复盘、Star 与用户增长复盘、版本迭代复盘、从 0 到 1 的发布复盘。 🖊️ 示范选题: ●开源项目从 0 到 1000 Star,我做对了什么 ●开源一周年,我交出的成绩单 这类文章不只是一次经验分享,也是一张项目名片。欢迎将项目托管到 AtomGit 并申请成为 G-Star 项目,通过后可获得平台流量推荐、项目宣传等权益。(G-Star:AtomGit 最具影响力开源项目) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1f90c61528ad410d8d66f9d0e3707a5a.png) 咨询 G-Star 项目申请 2️⃣ 技术经验体系化沉淀 踩坑合集、最佳实践总结、工具链实战、CI/CD 流水线搭建、代码重构与架构演进。 🖊️ 示范选题: ●提了 50 个 PR 后,我总结的开源协作避坑清单 ●一次重大重构复盘:把单体拆成可维护的模块 3️⃣ AI 赋能开源的实战成果 AI 编程助手实战测评、基于开源模型的微调与应用开发、AI 辅助研发提效流水线。 🖊️ 示范选题: ●我用 AI 编程助手把提 PR 效率翻了 3 倍 ●基于开源大模型搭了个 XX 工具(附完整教程) 4️⃣ 开源共建笔记|文档、社区与布道 开源文档写作与翻译、issue 互助经验、组织 meetup、用开源项目做教学与分享。 🖊️ 示范选题: ●一个优秀开源项目,文档应该怎么写 ●我用开源项目做了个线上 Workshop ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/23e83ceebc594c379f7fc6aa8dcfa40c.png) 扫码加入码动四季投稿交流群,和更多伙伴一起交流技术!

16人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

收集了一些docker修改镜像源地址

收集了一些docker国内源地址修改镜像源地址,近70个
原创
博文更新于 2025.07.08 ·
633 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

.net 在Linux/Docker报错The type initializer for ‘Gdip’ threw an exception 图片操作报错System.Drawing.Common

.net 在Linux/Docker报错The type initializer for ‘Gdip’ threw an exception 图片操作报错System.Drawing.Common
原创
博文更新于 2024.12.02 ·
1538 阅读 ·
11 点赞 ·
0 评论 ·
26 收藏

Linux或者Docker中时区查询和修改(差8小时问题)

当我们在Linux或者Docker中部署程序时(无论.Net或者Java或者等等)获取系统时间时(例如C# DateTime.Now),和北京时间差8小时。但是发现通过java中new Date()获取到的仍然是容器默认的时区,因为java是通过获取timezone来设置时间的,所以容器也需要设置时区。创建容器时,直接用宿主机器上的时区默认覆盖容器内的时区配置文件,也就是跟宿主机器同样的时区配置。执行【date】命令查看Docker容器的时间发现与宿主机有误差时,修改时间和时区。4、进入Docker容器。
原创
博文更新于 2024.11.26 ·
1974 阅读 ·
8 点赞 ·
1 评论 ·
4 收藏

Docker进入容器 Docker容器与主机间的文件传输方法(复制/上传/下载)

su rootrz -y查看日志进入容器sudo docker exec -it “容器ID” bash将主机的文件复制到容器里:sudo docker cp 主机目录 容器ID:容器目录退出container 输入: exit 1 或者按键: Ctrl + C进入容器:(不要用这种 docker attach)docker attach 44fc0f0582d9 但是这种方式有缺点,当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞..
转载
博文更新于 2024.11.21 ·
3829 阅读 ·
1 点赞 ·
1 评论 ·
5 收藏

SQL查询语句实用大全(适合SQL的初学者以及经常写SQL的人)

发布资源 2011.09.14 ·
txt

SVN安装配置及使用说明

发布资源 2011.10.08 ·
pdf

c# 远程网络唤醒电脑(远程开机),源码+发布好的绿色版程序

发布资源 2022.10.19 ·
rar

简便串口测试工具(包含6种校验码生成方式)可调试智能电表、断路器等各种串口设备

发布资源 2023.11.21 ·
rar

git服务器宕机后,怎么用本地仓库重新建立gitlab服务器(包括所有历史版本)

因此,在进行实际操作之前,请务必查阅 GitLab 官方文档,了解与您的版本和配置相关的详细信息。如果您已经有一个现有的项目,并且只需将更改推送到项目中,您可以遵循相似的步骤,但不需要创建新项目。在这种情况下,您应该使用 Git 存储库的主机名或 IP 地址,并且在 SSH URL 中省略 Git 存储库的路径。在您的本地 Git 存储库中,将新项目的 GitLab URL 添加为一个远程存储库。如果要连接到特定的 Git 存储库,您可以使用 Git 存储库的 URL,而不是 SSH URL。
原创
博文更新于 2023.10.11 ·
1858 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C# 二进制与Stream转换

【代码】C# 二进制与Stream转换。
转载
博文更新于 2023.06.14 ·
1066 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据库文件.mdf太大的解决方法

在我们使用sql server数据库或者服务器时,有时会发现数据库不到一段时间,占用磁盘空间好大,也有可能是数据的原因,也有可能是其他的原因,但如果说占用绝大部分存储空间,而且数据量又不怎么大,那么,这其中就有问题了。工具/原料 sql server 方法/步骤 首先我们要清楚问题的原因之处; 第一步:打开sql server数据库,数据库右键——属性——文件,在这个文件栏...
转载
博文更新于 2023.05.24 ·
11926 阅读 ·
0 点赞 ·
0 评论 ·
12 收藏

发生一个或多个错误,未能启动调试适配器。可以在输出窗口中查看额外的信息。 Visual Studio 2019

发生一个或多个错误。未能启动调试适配器。可以在输出窗口中查看额外的信息。【工具】-》【选项】-》【调试】-》【常规】 找到javascript的调试项,关闭即可。原因:开启了vs的javascript的调试模式,导致的。解决方法:关闭vs的JavsScript调试功能即可。未能启动调试适配器。可以在输出窗口中查看额外的信息。发生一个或多个错误。
转载
博文更新于 2023.04.26 ·
6993 阅读 ·
7 点赞 ·
4 评论 ·
8 收藏

c#.Net MVC服务端下载文件、限制下载速度、大文件下载、对性能的影响、对大文件的支持、对断点续传和多线程下载的支持

asp.net里提供了多种方式,从服务器端向客户端写文件流,实现客户端下载文件。这种技术在做防下载系统时比较有用处。其中WriteFilet和BinaryWrite出现得比较早,对文件流的输出可以启动作用,但由于都是将整个文件读到内存后再往客户端写,因此会占用大量的内存资源,特别是要下载的文件比较大时,影响asp.net应用的稳定运行。
转载
博文更新于 2022.11.24 ·
2928 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

c#.Net MVC服务端下载文件、限制下载速度、大文件下载、对性能的影响、对大文件的支持、对断点续传和多线程下载的支持

其实BinaryWrite和WriteFile之所以会影响性能,是因为将整个文件读到内存后再往客户端写,那么我们可以控制他的输出方式,一次只读一块内容到内存,再往客户端写,这些就可以自定义下载的和个细节了。其中WriteFilet和BinaryWrite出现得比较早,对文件流的输出可以启动作用,但由于都是将整个文件读到内存后再往客户端写,因此会占用大量的内存资源,特别是要下载的文件比较大时,影响asp.net应用的稳定运行。上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。
转载
博文更新于 2022.11.24 ·
904 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

c#串口通信,串口能连接能发送,但是不能接收数据

答:

你用我的代码试试

using System;

using System.Collections.Generic;

using System.Text;

using System.IO.Ports;

using System.Globalization;

namespace SerialClass

{

    public class SerialClass

    {

        SerialPort _serialPort = null;

        //定义委托

        public delegate void SerialPortDataReceiveEventArgs(object sender, SerialDataReceivedEventArgs e, byte[] bits);

        //定义接收数据事件

        public event SerialPortDataReceiveEventArgs DataReceived;

        //定义接收错误事件

        //public event SerialErrorReceivedEventHandler Error;

        //接收事件是否有效 false表示有效

        public bool ReceiveEventFlag = false;

        #region 获取串口名

        private string protName;

        public string PortName

        {

            get { return _serialPort.PortName; }

            set

            {

                _serialPort.PortName = value;

                protName = value;

            }

        }

        #endregion

        #region 获取比特率

        private int baudRate;

        public int BaudRate

        {

            get { return _serialPort.BaudRate; }

            set

            {

                _serialPort.BaudRate = value;

                baudRate = value;

            }

        }

        #endregion

        #region 默认构造函数

        /// <summary>

        /// 默认构造函数,操作COM1,速度为9600,没有奇偶校验,8位字节,停止位为1 "COM1", 9600, Parity.None, 8, StopBits.One

        /// </summary>

        public SerialClass()

        {

            _serialPort = new SerialPort();

        }

        #endregion

        #region 构造函数

        /// <summary>

        /// 构造函数,

        /// </summary>

        /// <param name="comPortName"></param>

        public SerialClass(string comPortName)

        {

            _serialPort = new SerialPort(comPortName);

            _serialPort.BaudRate = 9600;

            _serialPort.Parity = Parity.Even;

            _serialPort.DataBits = 8;

            _serialPort.StopBits = StopBits.One;

            _serialPort.Handshake = Handshake.None;

            _serialPort.RtsEnable = true;

            _serialPort.ReadTimeout = 2000;

            setSerialPort();

        }

        #endregion

        #region 构造函数,可以自定义串口的初始化参数

        /// <summary>

        /// 构造函数,可以自定义串口的初始化参数

        /// </summary>

        /// <param name="comPortName">需要操作的COM口名称</param>

        /// <param name="baudRate">COM的速度</param>

        /// <param name="parity">奇偶校验位</param>

        /// <param name="dataBits">数据长度</param>

        /// <param name="stopBits">停止位</param>

        public SerialClass(string comPortName, int baudRate, Parity parity, int dataBits, StopBits stopBits)

        {

            _serialPort = new SerialPort(comPortName, baudRate, parity, dataBits, stopBits);

            _serialPort.RtsEnable = true;  //自动请求

            _serialPort.ReadTimeout = 3000;//超时

            setSerialPort();

        }

        #endregion

        #region 析构函数

        /// <summary>

        /// 析构函数,关闭串口

        /// </summary>

        ~SerialClass()

       {

           if (_serialPort.IsOpen)

               _serialPort.Close();

       }

        #endregion

        #region 设置串口参数

        /// <summary>

        /// 设置串口参数

        /// </summary>

        /// <param name="comPortName">需要操作的COM口名称</param>

        /// <param name="baudRate">COM的速度</param>

        /// <param name="dataBits">数据长度</param>

        /// <param name="stopBits">停止位</param>

        public void setSerialPort(string comPortName, int baudRate, int dataBits, int stopBits )

        {

            if (_serialPort.IsOpen)

                _serialPort.Close();

            _serialPort.PortName = comPortName;

            _serialPort.BaudRate = baudRate;

            _serialPort.Parity = Parity.None;

            _serialPort.DataBits = dataBits;

            _serialPort.StopBits = (StopBits)stopBits;

            _serialPort.Handshake = Handshake.None;

            _serialPort.RtsEnable = false;

            _serialPort.ReadTimeout = 3000;

            _serialPort.NewLine = "/r/n";

            setSerialPort();

        }

        #endregion

        #region 设置接收函数

        /// <summary>

        /// 设置串口资源,还需重载多个设置串口的函数

        /// </summary>

        void setSerialPort()

        {

            if (_serialPort != null)

            {

                //设置触发DataReceived事件的字节数为1

                _serialPort.ReceivedBytesThreshold = 1;

                //接收到一个字节时,也会触发DataReceived事件

                _serialPort.DataReceived += new SerialDataReceivedEventHandler(_serialPort_DataReceived);

                //接收数据出错,触发事件

                _serialPort.ErrorReceived += new SerialErrorReceivedEventHandler(_serialPort_ErrorReceived);

                //打开串口

                //openPort();

            }

        }

        #endregion

        #region 打开串口资源

        /// <summary>

        /// 打开串口资源

        /// <returns>返回bool类型</returns>

        /// </summary>

        public bool openPort()

        {

            bool ok = false;

            //如果串口是打开的,先关闭

            if (_serialPort.IsOpen)

                _serialPort.Close();

            try

            {

                //打开串口

                _serialPort.Open();

                ok = true;

            }

            catch (Exception Ex)

            {

                throw Ex;

            }

            return ok;

        }

        #endregion

        #region 关闭串口

        /// <summary>

        /// 关闭串口资源,操作完成后,一定要关闭串口

        /// </summary>

        public void closePort()

        {

            //如果串口处于打开状态,则关闭

            if (_serialPort.IsOpen)

                _serialPort.Close();

        }

        #endregion

        #region 接收串口数据事件

        /// <summary>

        /// 接收串口数据事件

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)

        {

            //禁止接收事件时直接退出

            if (ReceiveEventFlag)

            {

                return;

            }

            try

            {

                    System.Threading.Thread.Sleep(20);

                    byte[] _data = new byte[_serialPort.BytesToRead];

                    _serialPort.Read(_data, 0, _data.Length);

                    if (_data.Length == 0) { return; }

                    if (DataReceived != null)

                    {    

                        DataReceived(sender, e, _data);

                    }

                    //_serialPort.DiscardInBuffer();  //清空接收缓冲区  

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }

        #endregion

        #region 接收数据出错事件

        /// <summary>

        /// 接收数据出错事件

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        void _serialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e)

        {

        }

        #endregion

        #region 发送数据string类型

        public void SendData(string data)

        {

            //发送数据

            //禁止接收事件时直接退出

            if (ReceiveEventFlag)

            {

                return;

            }

            if (_serialPort.IsOpen)

            {

                _serialPort.Write(data);

            }

        }

        #endregion

        #region 发送数据byte类型

        /// <summary>

        /// 数据发送

        /// </summary>

        /// <param name="data">要发送的数据字节</param>

        public void SendData(byte[] data, int offset, int count)

        {

            //禁止接收事件时直接退出

            if (ReceiveEventFlag)

            {

                return;

            }

            try

            {

                if (_serialPort.IsOpen)

                {

                    //_serialPort.DiscardInBuffer();//清空接收缓冲区

                    _serialPort.Write(data, offset, count);

                }

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }

        #endregion

        #region 发送命令

        /// <summary>

        /// 发送命令

        /// </summary>

        /// <param name="SendData">发送数据</param>

        /// <param name="ReceiveData">接收数据</param>

        /// <param name="Overtime">超时时间</param>

        /// <returns></returns>

        public int SendCommand(byte[] SendData, ref  byte[] ReceiveData, int Overtime)

        {

 

            if (_serialPort.IsOpen)

            {

                try

                {

                    ReceiveEventFlag = true;        //关闭接收事件

                    _serialPort.DiscardInBuffer();  //清空接收缓冲区                

                    _serialPort.Write(SendData, 0, SendData.Length);

                    int num = 0, ret = 0;

                    System.Threading.Thread.Sleep(10);

                    ReceiveEventFlag = false;      //打开事件

                    while (num++ < Overtime)

                    {

                        if (_serialPort.BytesToRead >= ReceiveData.Length)

                            break;

                        System.Threading.Thread.Sleep(10);

                    }

 

                    if (_serialPort.BytesToRead >= ReceiveData.Length)

                    {

                        ret = _serialPort.Read(ReceiveData, 0, ReceiveData.Length);

                    }

                    else

                    {

                        ret = _serialPort.Read(ReceiveData, 0, _serialPort.BytesToRead);

                    }

                    ReceiveEventFlag = false;      //打开事件

                    return ret;

                }

                catch (Exception ex)

                {

                    ReceiveEventFlag = false;

                    throw ex;

                }

            }

            return -1;

        }

        #endregion

        #region 获取串口

        /// <summary>

        /// 获取所有已连接短信猫设备的串口

        /// </summary>

        /// <returns></returns>

        public string[] serialsIsConnected()

        {

            List<string> lists = new List<string>();

            string[] seriallist = getSerials();

            foreach (string s in seriallist)

            {

            }

            return lists.ToArray();

        }

        #endregion

        #region 获取当前全部串口资源

        /// <summary>

        /// 获得当前电脑上的所有串口资源

        /// </summary>

        /// <returns></returns>

        public string[] getSerials()

        {

string[] ports = SerialPort.GetPortNames();

            Array.Sort(ports);

            return ports;

        }

        #endregion

        #region 字节型转换16

        /// <summary>

        /// 把字节型转换成十六进制字符串

        /// </summary>

        /// <param name="InBytes"></param>

        /// <returns></returns>

        public static string ByteToString(byte[] InBytes)

        {

            string StringOut = "";

            foreach (byte InByte in InBytes)

            {

                StringOut = StringOut + String.Format("{0:X2} ", InByte);

            }

            return StringOut;

        }

        #endregion

        #region 十六进制字符串转字节型

        /// <summary>

        /// 把十六进制字符串转换成字节型(方法1)

        /// </summary>

        /// <param name="InString"></param>

        /// <returns></returns>

        public static byte[] StringToByte(string InString)

        {

            string[] ByteStrings;

            ByteStrings = InString.Split(" ".ToCharArray());

            byte[] ByteOut;

            ByteOut = new byte[ByteStrings.Length];

            for (int i = 0; i <= ByteStrings.Length-1 ; i++)

            {

                //ByteOut[i] = System.Text.Encoding.ASCII.GetBytes(ByteStrings[i]);

                ByteOut[i] = Byte.Parse(ByteStrings[i], System.Globalization.NumberStyles.HexNumber);

                //ByteOut[i] =Convert.ToByte("0x" + ByteStrings[i]);

            }

            return ByteOut;

        }

        #endregion

        #region 十六进制字符串转字节型

        /// <summary>

        /// 字符串转16进制字节数组(方法2)

        /// </summary>

        /// <param name="hexString"></param>

        /// <returns></returns>

        public static byte[] strToToHexByte(string hexString)

        {

            hexString = hexString.Replace(" ", "");

            if ((hexString.Length % 2) != 0)

                hexString += " ";

            byte[] returnBytes = new byte[hexString.Length / 2];

            for (int i = 0; i < returnBytes.Length; i++)

                returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);

            return returnBytes;

        }

        #endregion

        #region 字节型转十六进制字符串

        /// <summary>

        /// 字节数组转16进制字符串

        /// </summary>

        /// <param name="bytes"></param>

        /// <returns></returns>

        public static string byteToHexStr(byte[] bytes)

        {

            string returnStr = "";

            if (bytes != null)

            {

                for (int i = 0; i < bytes.Length; i++)

                {

                    returnStr += bytes[i].ToString("X2");

                }

            }

            return returnStr;

        }

        #endregion

    }

}

 

======================================================================================

调用方法:

static SerialClass sc = new SerialClass();

static void Main(string[] Args)

{

   sc.DataReceived += new SerialClass.SerialPortDataReceiveEventArgs(sc_DataReceived);

   sc.writeData("at");

   Console.ReadLine();

   sc.closePort();

}

static void sc_DataReceived(object sender, SerialDataReceivedEventArgs e, byte[] bits)

{

   Console.WriteLine(Encoding.Default.GetString(bits));

}

回答问题 2022.11.02

c# 远程网络唤醒电脑(电脑远程开机+内网MAC和IP扫描)(附带源码+主板和Windows开启详细说明+外网远程唤醒方案)

1、人在公司坐,昨晚写的文档放在家中电脑忘记Copy了,想要访问家中电脑拿到文档。2、家中或公司中局域网内有某台电脑(或服务器)要开机,或者批量一键打开局域网内某些电脑。
原创
博文更新于 2022.10.19 ·
18768 阅读 ·
16 点赞 ·
9 评论 ·
73 收藏

ASP.NET Core 各版本 中间件或过滤器中获取Post参数方法

2、当在动作过滤器(ActionFilter)或者需要多次读取 request.body 的时候,.net core 可以通过调用request.EnableRewind()实现,可以重置读取位置 ,但是在过滤器中使用此方法时出现异常,request.body的长度总是为0,说明在请求到达过滤器时Steam已经被读取了。1、权限(AuthorizationFilters)验证器中读取并只读取有一次请求串的方法。项目中,框架为.NET5,启动倒带方式,为。3、在任意想要读取的位置重复读取。
原创
博文更新于 2022.09.09 ·
5466 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

SQLServer 查询最近一天,三天,一周,一月,一季度数据的方法

三天 select * from T_news where datediff(day,addtime,getdate())<= 2 and datediff(day,addtime,getdate())>= 0一周 select * from T_news WHERE (DATEPART(wk, addtime) = DATEPART(wk, GETDATE())) AND (DATEPART(yy, addtime) = DATEPART(yy, GETDATE()))注意:此时不能用
转载
博文更新于 2022.05.26 ·
5086 阅读 ·
0 点赞 ·
0 评论 ·
9 收藏

记一次MySQL数据迁移到SQLServer全过程

第一种迁移工具Microsoft SQL Server Migration Assistant for MySQL:推荐这款工具,微软出的,但是也会有些问题,如部分表数据不能完全迁移第二种迁移工具Navicat Premium 12:不推荐,速度慢,极容易失败第三种迁移工具Tapdata:这款也不错,第三方工具,但不稳定,总内存溢出,底层Java写的,需要与客服沟通解决使用中问题,客服响应速度不是很理想
转载
博文更新于 2022.05.26 ·
1403 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

C#实现用托盘控制windows服务

发布资源 2018.03.26 ·
rar
加载更多