// 引用库
using System.Diagnostics;
/*************************************************************
* 无参调用exe
*************************************************************/
// 具体调用代码
Process m_Process = new Process();
m_Process.StartInfo.FileName = "exePath"; //exe所在的文件夹绝对路径
m_Process.Start();
/*************************************************************
* 有参调用exe
*************************************************************/
Process cmd = new Process();
cmd.StartInfo.FileName = @"exePath"; //exe所在的文件夹绝对路径
cmd.StartInfo.CreateNoWindow = false;// 显示命令行窗口
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
string param1 = "456", param2 = "789";
cmd.StartInfo.Arguments = param1+" "+param2;
cmd.Start();
参照链接
C#调用外部exe(2021.4.15)_jing_zhong的博客-CSDN博客_c# 启动外部exeC#调用外部exe方式 2021.4.9调用C++封装好的exe调用Java封装好的exe调用java源码调用Python封装好的exe调用Python源码调用MATLAB封装好的exe测试调用C++封装好的exestring exefile = "d:\\chktool\\checktool.exe"; if (File.Exists(exefile)) { Process process = new Process(); ProcessStartInfhttps://blog.csdn.net/jing_zhong/article/details/115552400
2.1.调用*.mdb环境
a. 要使用【Microsoft Access 数据库引擎可再发行程序包】32位。
下载地址:Download Microsoft Access 2010 数据库引擎可再发行程序包 from Official Microsoft Download Centerbb
b.测试和打包时使用下x86环境运行
c.在NuGet中引入包"System.Data.OleDb"
2.2调用代码
// 引用包
using System.Data.OleDb;
//实现代码
private void bt_mdb_oledb_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+数据库路径+";Jet OLEDB:Database Password="+ 数据库密码);
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from " + 表名; // 查询语句
OleDbDataReader dr = cmd.ExecuteReader(); // 执行查询语句
DataTable dt = new DataTable();
if (dr.HasRows) // 判断是否查询出结果
{
// 遍历取值
for (int i = 0; i < dr.FieldCount; i++)
{
dt.Columns.Add(dr.GetName(i));
}
dt.Rows.Clear();
}
// 关闭数据库(上面代码的最好写个try-catch,然后把这块放finally里面)
cmd.Dispose();
conn.Close();
}
//方法一**速度中等
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
var t1 = reader[0];
}
//方法二**速度最慢
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
var t1 = reader["字段名"];
}
//方法三**速度最快
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
var t1 = reader.GetValue(0);
}
OleDbDataReader快速数据读取方式 - Hxxxxxxyyyyyy - 博客园https://www.cnblogs.com/dullfish/p/6214983.html
3.调用*.accdb文件(System.Data.OleDb)
3.1同2.1但是不需要32位【Microsoft Access 数据库引擎可再发行程序包】
3.2调用代码
// 引入库
using System.Data.OleDb;
private void bt_accdb_oledb_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=数据库路径;Jet OLEDB:Database Password=数据库密码");
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from 表名";// 查询语句
OleDbDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
// 分析数据结果
if (dr.HasRows)
{
for (int i = 0; i < dr.FieldCount; i++)
{
dt.Columns.Add(dr.GetName(i));
}
dt.Rows.Clear();
}
cmd.Dispose();
conn.Close();
DGV_Data.DataSource = dt;
}
4.1在NuGet中引入包"Oracle.ManagedDataAccess.Client"
4.2调用代码
// 包引入
using Oracle.ManagedDataAccess.Client;
// 调用代码
private void bt_oracle_Click(object sender, EventArgs e)
{
// 链接地址:例如 数据库ip/数据库sid(172.0.0.1/orcl)
var connectionString = "user id=用户id;password=密码;data source=链接地址";
OracleConnection oraConn = null;
OracleCommand oraCmd = null;
OracleDataReader oraReader = null;
try
{
oraConn = new OracleConnection(connectionString);
oraConn.Open();
oraCmd = oraConn.CreateCommand();
oraCmd.CommandText = "select * from 表名"; // 查询语句
oraReader = oraCmd.ExecuteReader();
// 解析数据
DataTable dt = new DataTable();
if (oraReader.HasRows)
{
for (int i = 0; i < oraReader.FieldCount; i++)
{
dt.Columns.Add(oraReader.GetName(i));
}
dt.Rows.Clear();
}
}
catch (Exception ex)
{
Console.WriteLine($"Connection Failed: {ex.Message}");
}
finally
{
// 关闭数据库
if (oraConn != null)
oraConn.Close();
}
}
参照链接
ODP.NET Core Managed Driver実装方法 | YukiPress.NET CoreからOracle Databaseに接続するには、ODP.NET Core Managed Driverを使います。さらに、これはOracle Clientのインストールなしで使用できます。今回の記事ではC#のプログラムかhttps://mat0401.info/blog/oracle-odpnet-manged1/ C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net) - *(00)* - 博客园https://www.cnblogs.com/zouhao/p/9000286.html
C# combox不能输入的解决方法_wxstar8的博客-CSDN博客_c# combobox 不能输入https://blog.csdn.net/wxstar8/article/details/47009481
Graphics g = panel1.CreateGraphics();
int x1(起始点的横坐标), x2(终点的横坐标), y1(起始点的纵坐标), y2(终点的纵坐标);
Pen pen = new Pen(Color.Black); // 画笔颜色
g.DrawLine(pen, new Point(x1, y1), new Point(x2, y2)); // 画画
pen.Dispose();
g.Dispose();
// 利用每次控件刷新都会掉Paint事件,在每次刷新时重新画线,实现永久保留
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = panel1.CreateGraphics();
int x1(起始点的横坐标), x2(终点的横坐标), y1(起始点的纵坐标), y2(终点的纵坐标);
Pen pen = new Pen(Color.Black); // 画笔颜色
g.DrawLine(pen, new Point(x1, y1), new Point(x2, y2)); // 画画
pen.Dispose();
g.Dispose();
}
参照:
C#绘图:在屏幕上画一条直线 - 翔宇亭IT乐园https://www.biye5u.com/article/Csharp/mutimedia/2012/5814.html
有一个二维数组sz[,] 怎样获取sz 的行数和列数呢?
sz.GetLength(0) 返回第一维的长度(即行数) 第一维长度
sz.GetLength(1) 返回第二维的长度(即列数) 第二维长度
sz.GetLength(n - 1) 返回第n维的长度 第n维长度
参照:
C#获取二维数组的行数和列数及其多维。。。 - 孑孓子 - 博客园https://www.cnblogs.com/handboy/p/7148424.html
WinForm TextBox 如何在获取焦点后,全选文本_weixin_30568591的博客-CSDN博客https://blog.csdn.net/weixin_30568591/article/details/98408463
获得Windows系统中文件属性——GetFileAttributes详解_fivedoumi的专栏-CSDN博客_getfileattributeshttps://blog.csdn.net/fivedoumi/article/details/6933989
StreamReader与StreamWriter 博客园https://www.cnblogs.com/kissdodog/archive/2013/01/27/2878667.html
using System.Diagnostics;
// 杀掉进程
public static void KillProcess(string processName)
{
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName.Contains("进程名称"))
{
try
{
p.Kill();
p.WaitForExit(); // possibly with a timeout
Console.WriteLine($"已杀掉进程!!!");
}
catch (Win32Exception e)
{
Console.WriteLine(e.Message.ToString());
}
catch (InvalidOperationException e)
{
Console.WriteLine(e.Message.ToString());
}
}
}
}
C# 杀掉系统中的进程 - 没事儿写个bug - 博客园https://www.cnblogs.com/swjian/p/11404142.html
C#实现字符的全角,半角转换_kone666-CSDN博客_c# 全角转半角#region 全角转换半角以及半角转换为全角 ///转全角的函数(SBC case) ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 public static string ToSBC( string input) { // 半角转全角: chhttps://blog.csdn.net/kone0611/article/details/68924168
C# 正则表达式大全(代码篇)https://www.cnblogs.com/zhaoshujie/p/9718301.html
C#WinForm窗体事件执行次序(较完整版) - 林冠逹 - 博客园https://www.cnblogs.com/viclgd/archive/2010/12/01/1892574.html
EncodingProvider 类 (System.Text) | Microsoft Docshttps://docs.microsoft.com/zh-cn/dotnet/api/system.text.encodingprovider?view=net-6.0
EncodingProvider provider = CodePagesEncodingProvider.Instance;
Encoding encoding = provider.GetEncoding("shift-jis");
C#代码中如何比较两个日期的大小? - 小小邪 - 博客园C#中比较两个日期大小的方法 调用的代码 整体demo源码 具体效果图: 1)图1 2)图2https://www.cnblogs.com/xielong/p/9383058.html
转化说明:
关于单位“缇”与“像素”的转换,以及缇与其他单位(例如:厘米)之间的转换https://www.cnblogs.com/chenyebin/archive/2012/12/18/2822819.html
twip→ピクセルに変換する方法: DOBON.NETプログラミング掲示板過去ログhttps://dobon.net/vb/bbs/log3-10/5849.html
C# winform获取当前屏幕dpi缩小缩放比例_aidnexl的博客-CSDN博客_c# 获取屏幕缩放比例https://blog.csdn.net/weixin_37744986/article/details/108383240
转化工具:
Convert Twips to Pixels (twip to PX) ― JustinTOOLs.comhttps://www.justintools.com/unit-conversion/length.php?k1=twips&k2=pixels
// 1:方法一
contextMenuStrip1.Show(Control.MousePosition.X, Control.MousePosition.Y);
// 2.方法二
contextMenuStrip1.Show(MousePosition);
winfrom窗体右键菜单跟随鼠标或者固定在程序中_weixin_30500105的博客-CSDN博客需求:在点击主导航栏,弹出contextMenuStrip控件时,将其出现位置固定解决:1、让Winform程序contextMenuStrip控件跟随鼠标位置出现代码:contextMenuStrip1.Show(Control.MousePosition.X, Control.MousePosition.Y); contextMe...https://blog.csdn.net/weixin_30500105/article/details/95679078
Rectangle ScreenArea = System.Windows.Forms.Screen.GetBounds(this);
int width1 = ScreenArea.Width; //屏幕宽度
int height1 = ScreenArea.Height; //屏幕高度