C#
美奇开发工作室
后端开发工程师,做一个喜欢分享技术的领域开发者!
展开
-
C#将Dictionary字典集合转换为json字符串
需要引用Newtonsoft.Json.dll库(请自行下载对应的版本)原创 2023-03-07 12:09:51 · 2256 阅读 · 2 评论 -
C#让子窗口紧靠父窗口右边(贴边显示),并随父窗口移动而移动
C#开发简单又愉快,但随着软件的强大,功能也会越来越多,如果全都是子窗口弹窗显示,会让用户觉得很不友好,看着也不舒服。比较好的开发方案是使用“面板+用户组件”,整个软件就只有一个窗口,但这种方案的前提是要重构布局和代码,对于已经成型的软件,再去做这些工作,估计要花费很多时间。因为我要加的子窗口比较小,为了简单省事,我想直接让子窗口贴靠在父窗口右侧。原创 2023-02-23 14:45:44 · 1233 阅读 · 1 评论 -
C#将ASCII字符转为十六进制值,生成hex格式的密文
C#将ASCII字符转为十六进制值,生成hex格式的密文原创 2022-08-13 18:36:58 · 1424 阅读 · 0 评论 -
C#弹出询问对话框
C#弹出询问对话框原创 2022-08-03 18:34:39 · 1963 阅读 · 0 评论 -
C#的Dictionary字典集合按照key键进行升序和降序排列
C#的Dictionary字典集合按照key键进行升序和降序排列原创 2022-08-03 17:14:52 · 964 阅读 · 0 评论 -
C#将对象转换为Dictionary字典集合
C#将对象转换为Dictionary字典集合原创 2022-08-02 20:44:03 · 1027 阅读 · 0 评论 -
C#为listview选中的项添加右键菜单
1、把ContextMenuStrip菜单控件拖放到设计界面上,Name属性设置为cmsListViewItem。5、ContextMenuStrip控件的子菜单添加点击事件,比如我选中ListView的一个项后,右键点击。2、在ContextMenuStrip控件的Items集合里添加想要的菜单。...原创 2022-08-01 16:14:16 · 2860 阅读 · 0 评论 -
魔域充值卡表cq_card里chk_sum参数的算法
1、魔域充值有1元卡和10元卡,分别存放在下面两张数据表里1元卡 cq_card 10元卡 cq_card22、计算chk_sum需要先知道下面的ID1元卡对应的物品为270卡,物品ID:780000 10元卡对应的物品为2700卡,物品ID:7800013、chk_sum的值需要使用物品ID和账号ID来计算,账号ID位于 account表里chk_sum的计算公式:1元卡的 chk_sum=780000^账号ID10元卡的 chk_sum=780001^账号ID说明..原创 2022-05-22 21:15:06 · 496 阅读 · 0 评论 -
C#执行SQL Server的储存过程命令
一、执行常规SQL语句SqlConnection conn = new SqlConnection("连接字符串"); conn.Open();//建立连接,并执行sql语句命令SqlCommand cmd = new SqlCommand(SQLString, conn);// 执行SQL语句,返回影响的记录数res = cmd.ExecuteNonQuery();二、执行储存过程想执行储存过程命令,需要设置SqlCommand的CommandType类型,CommandType类原创 2022-05-22 10:22:49 · 3156 阅读 · 0 评论 -
C# list集合根据对象某个属性进行排序(降序或升序)
用委托和lambda来实现:public List<Vip>vipList = new List<Vip>();//排序vipList.Sort( delegate(Vip st1, Vip st2){ //降序排列 return st2.money.CompareTo(st1.money); //升序排列(颠倒 st1 和 st2 即可) //return st1.money.CompareTo(s.原创 2023-02-23 14:48:09 · 500 阅读 · 0 评论 -
C#将List集合转换为json字符串
一、List转换为json1、需要先添加System.Web.Extensions引用(微软自带)2、示例代码//定义一个测试listList<decimal[]> list = new List<decimal[]>();for (int i = 0; i < 5; i++){ list .Add(new decimal[] { 100+i , i});}//把List集合转换为json字符串JavaScriptSerializer ser原创 2022-05-21 16:02:00 · 10178 阅读 · 0 评论 -
C#判断某个日期时间是不是在5分钟内(计算2个时间相差多少分)
TimeSpan ts1 = new TimeSpan(Convert.ToDateTime("2022-3-12 18:00:00").Ticks);TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks);TimeSpan ts = ts1.Subtract(ts2).Duration();int minutes = (ts.Days*24 + ts.Hours) * 60 + ts.Minutes;MessageBox.Show("相差多少分:" + m.原创 2022-03-12 19:14:30 · 975 阅读 · 0 评论 -
C#爬虫必备:使用wininet接口发起http请求
封装好的类:using System;using System.Collections;using System.Drawing;using System.IO;using System.Net;using System.Runtime.InteropServices;using System.Text;using System.Text.RegularExpressions;namespace 测试{ public class Wininet { .原创 2022-03-11 21:12:03 · 2406 阅读 · 0 评论 -
C#给dll里的类添加扩展方法
导读:众所周知,dll是封装好的的类库,里面的代码是没办法修改的。但我们又想在原来的代码基础上增加一些自定义方法,应该怎么做呢?下面就让我们一起来学习一下 “如何给类添加扩展方法?步骤:一、举例,我这里有一个EPPlus.dll类库,主要用来读取Excel表格数据的,在这个EPPlus.dll类库里的OfficeOpenXml命名空间下,有一个ExcelRangeRow类,这个ExcelRangeRow类的代码如下:#region 程序集 EPPlus.dll, v4.0.30319#e原创 2022-02-28 13:40:29 · 999 阅读 · 0 评论 -
C# dataview.RowFilter过滤非纯数字的,或者说判断是不是纯数字
场景需求:数据存放在DataTable里,然后通过DataView进行筛选,然后再显示到视图上。例如筛选域名,我需要选出全是数字的域名,那么用下面的方法就可以实现。//foreach里的dv就是DataViewforeach (DataRowView row in dv){ //假设第一列保存的是域名的主体部分(如18pay.net的18pay) string name= row[1].ToString(); //把不是纯数字的的行删掉,剩下的就是全数字的了 if (!Is原创 2021-03-23 00:10:34 · 710 阅读 · 1 评论 -
C#使用正则表达式匹配获取html字符串中<input>标签指定value值(亲测可用)
封好的函数:/* * / <summary> * / 通过正则表达式获取html字符串中<input>标签指定value值 * / </summary> * / <param name="FileString">包含html的字符串</param> * / <param name="inputName">指定<input>控件的名称</param> * / <returns><.原创 2021-03-10 19:54:08 · 1847 阅读 · 0 评论 -
C#的Textbox控件输入的字符有改变,并且输入完后才触发事件
1、定义一个全局变量:privatestringglobal_str;2、假设控件名称是txtName,在MouseLeave事件里写如下代码:private void txtName_MouseLeave(object sender, EventArgs e){ string name = this.txtName.Text.Trim(); //判断用户输入不为空,并且新的输入值不等于定义的全局变量 if (name != string.Empty &..原创 2020-11-17 12:03:57 · 7013 阅读 · 1 评论 -
C#使用自定义的CacheHelper缓存辅助类
1、添加缓存辅助类:CacheHelper.cs需要先添加引用:引用 → 添加引用 → .NET → system.webusing System;using System.Linq;using System.Text;using System.Web;using System.Collections;using System.Web.Caching;namespace myTools{ /// <summary> /// 缓存类 /// &l.原创 2020-10-13 12:21:03 · 679 阅读 · 0 评论 -
win7安装SQL Server+IIS7.5,调试ASP程序时出现以下错误:An error occurred on the server ...
错误提示如下图:解决方法:1、第一步:启动IIS,打开该站点,在【功能视图】的列表中找到【ASP】2、第二步:找到【将错误发送到浏览器】的值修改为【True】并应用。3、修改之后,直接预览再看效果,页面报错【Active Server Pages错误 'ASP 0131'不允许的父路径】如下:4、这时候需要设置下【启用父路径】,同样设置为【True】并应用问题解析:(1)、将错误发送到浏览器就是把程序错误信息用友好的方式展现出来,主要是为了方便调...原创 2020-07-02 10:59:34 · 372 阅读 · 0 评论 -
C#使用fileSystemWatcher实时监控目录里所有文件的增删改和重命名操作日志
先给大家看一下效果图:第一步、添加listBox控件1、拖入一个listBox控件,将DrawMode属性设置为:OwnerDrawFixed2、添加一个ColoredListBoxItem.cs类,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing;namespace myTools{ publi原创 2020-10-11 16:27:35 · 899 阅读 · 0 评论 -
C#实现statusStrip状态栏中的toolStripStatusLabel控件文本内容居中的方法
方法很简单:将其Spring属性设为True,Spring属性的作用是设置该项是否填满剩余空间。原创 2020-10-10 13:57:49 · 1212 阅读 · 0 评论 -
C# 窗体在桌面右下角显示(在任务栏的上方)
public Form1() { InitializeComponent(); //右下角显示【注意:代码要放到InitializeComponent()后面】 int x = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width - this.Width; int y = System.Windows.Forms.S.原创 2020-10-01 22:03:58 · 793 阅读 · 0 评论 -
C#使用Bat批处理修改当前运行程序的进程名
实现原理:1、获取当前程序的进程名称2、创建批处理bat文件,批处理bat文件一共实现四个功能:杀死当前进程,命令:taskkill /f /im 当前进程名称 修改当前程序文件名,命令:ren 旧文件名新文件名 删除旧文件,命令:del /q /f 旧文件名程序全路径 启动新的程序,命令:start {3} 新文件名程序全路径3、运行bat文件先看一下效果图:批处理工具类:BatUtils.cs/// <summary> /// 批处理工具类...原创 2020-10-01 14:01:05 · 3053 阅读 · 1 评论 -
Delphi各个版本的官方下载地址
Rad Studio Delphi 10.4.1https://altd.embarcadero.com/download/radstudio/10.4/radstudio_10_4_101461a.iso大小: 6406551552 bytesMD5: 952F87F0001D5A5E2310CBC8B5D7FEBFRad Studio Delphi 10.4 Sydneyhttp://altd.embarcadero.com/download/radstudio/10.4/...原创 2020-09-26 17:50:16 · 3330 阅读 · 0 评论 -
Visual Studio版本下载地址大全
各个版本的说明:Express/community版:微软说是学习版,其实是广告版,主要是新功能,老功能基本功能反倒不全。Professional版:功能足够了。Pentium版:也叫Pentium Professional版(高级专业版),实际上就是Enterprise版(企业版),比专业版增加团队协作、数据库联动开发等。实际上没有团队。Ultimate版:当然是全部功能版。Ultimate版 :完全安装需要9-10G存储空间,Professional版估计少不了太多,SP1安...原创 2020-09-26 17:37:08 · 3065 阅读 · 0 评论 -
C#调用免费接口查询计算机外网IP
接口一:https://api.ip.sb/ip/// <summary> /// 通过ip.sb查询外网IP /// </summary> /// <returns></returns> public static string GetIP() { string url = "https://api.ip.sb/ip"; Ht原创 2020-09-20 14:52:46 · 525 阅读 · 0 评论 -
C#实现简单的木马程序(学习木马制作流程)
要实现木马服务的程序,需要实现以下几个功能:后台的运行(隐藏技术) 控制码的接收与注册表的修改一、先建立一个Windows窗体应用程序,为了方便隐藏,项目名称可使用与系统相近的名称(如svchost.exe等)。1.将窗体属性"ShowInTaskbar"设为false,让它运行时不会在任务栏中显示。2.将窗体属性"Windowstate"设为Mininized,这样窗体就可以隐藏运行了。二、控制代码的接收,必须在服务程序运行开始时就启动,所以侦听线程必须在程序初始化中启动,所以放在窗体原创 2020-09-19 21:34:55 · 3855 阅读 · 1 评论 -
C#解析ip.ws.126.net的IP查询地区接口数据(使用正则表达式匹配获取所需数据)
1、先看一下接口地址:http://ip.ws.126.net/ipquery?ip=106.120.159.68返回的数据如下:var lo="北京市", lc="北京市"; var localAddress={city:"北京市", province:"北京市"}2、使用正则表达式进行匹配,获取省份和城市string url = "http://ip.ws.126.net/ipquery?ip=106.120.159.68";string result="";WebReque原创 2020-09-19 16:33:13 · 2258 阅读 · 0 评论 -
C#根据IP地址查询所属地区(调用免费的IP查询接口)
注意:解析 json需要引入Newtonsoft.Json.dll /// <summary> /// 根据IP 获取物理地址 /// </summary> /// <param name="ip">Ip地址(116.19.105.62)</param> /// <returns></returns> public .原创 2020-09-19 13:27:42 · 1490 阅读 · 0 评论 -
C#获取URL网址链接中的主域名部分
使用Uri类://需求是:获取url里的www.zy13.net域名string url = "http://www.zy13.net/thread-625-1-1.html";Uri uri = new Uri(url);string host = uri.Host;原创 2020-09-19 12:52:46 · 917 阅读 · 0 评论 -
C#使用正则表达式验证域名是否合法
/// <summary>/// 验证域名是否合法/// </summary>/// <param name="str">指定字符串</param>/// <returns></returns>public static bool IsDomain(string str){ string pattern = @"^(http://|https://)([\w-]+\.)+[\w-]+(/[\w- ./?%&.原创 2020-09-18 19:35:14 · 1196 阅读 · 0 评论 -
C#多线程:解决新创建的线程不能访问UI线程创建的窗口控件问题
多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,这时如果想要访问窗口的控件,发现无法对其控制。这时可将窗口构造函数中的CheckForIllegalCrossThreadCalls设置为false;然后就能安全的访问窗体控件。public Form1(){ InitializeComponent(); /*在多线程程序中: * 新创建的线程不能访问UI线程创建的窗口控件, * 如果需要访问窗原创 2020-09-18 17:32:17 · 710 阅读 · 1 评论 -
C#定时每天00点00分00秒自动重启软件
1、添加Timer控件,这个控件可以显示倒计时功能2、Timer控件的Tick事件代码: private void timerDownCount_Tick(object sender, EventArgs e) { string dateDiff = null; //获取当前时间 DateTime DateTime1 = DateTime.Now; //第二天的0点00原创 2020-08-01 12:01:38 · 1992 阅读 · 4 评论 -
C#提示Dns.Resolve()已过时的解决方法(通过域名查询IP的完整代码)
解决方法:把Dns.Resolve()改成Dns.GetHostEntry()即可C#通过域名查询IP的完整代码如下:IPHostEntry hostEntry = Dns.GetHostEntry(strDomain); IPEndPoint ipEndPoint = new IPEndPoint(hostEntry.AddressList[0], 0);string ipAddress = ipEndPoint.Address.ToString();Mess...原创 2020-06-15 19:56:33 · 2169 阅读 · 2 评论 -
C#打开对话框,获取Access数据库文件(.mdb)的路径
private void picAlonePointsFile_Click(object sender, EventArgs e) { OpenFileDialog fdlg = new OpenFileDialog(); fdlg.Title = "Open File Dialog"; fdlg.InitialDirectory = Path.GetFullPath("./");//@"c:\"; ...原创 2020-06-15 18:22:33 · 658 阅读 · 0 评论 -
C#不让webBrowser弹出js的脚本错误信息
在使用webBrowser控件时,访问网页会弹出JS脚本错误提示如下:解决方法:在webBrowser的DocumentCompleted事件中加上以下代码://屏蔽网页JS脚本错误弹窗webBrowser1.ScriptErrorsSuppressed = true;原创 2020-06-14 16:03:12 · 1029 阅读 · 0 评论 -
C# .NET .aspx获取url网址链接的参数值函数方法
一、根据参数,获取对应的值public static string getQueryString(string name){ string url = Request.Url.PathAndQuery; //匹配正则表达式 Regex urlRegex = new Regex("(^?|&)" + name + "=([^&]*)(&|$)"); Match m = urlRegex.Match(url); //用等于号拆分结果,再返回原创 2020-06-09 18:42:40 · 2409 阅读 · 0 评论 -
.NET在.aspx页面上写函数方法
说明:在 ASP.NET 中,页函数必须在 <script runat=server> 块中声明<%@ Page Language="C#" %><%Response.Charset = "utf-8"; Response.ContentType = "text/html"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); //调用方法string res.原创 2020-06-09 18:20:56 · 681 阅读 · 0 评论 -
IIS中搭建.NET网站报错:HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
1、搭建.NET网站时,出现报错如下:错误原因:“处理程序映射”中缺少ASP.NET 4.0的映射,需要添加映射。操作方法:在管理员身份打开命令行,运行以下命令:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i2、之后出现了新的错误“HTTP 错误 404.2 - Not Found由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。”,如下图:解决方法:(1..原创 2020-05-16 16:57:14 · 1589 阅读 · 0 评论 -
分享一个我自己写的《文件批量搜索删除工具》
下载地址:https://download.csdn.net/download/qq15577969/12390814原创 2020-05-09 13:35:12 · 684 阅读 · 0 评论