C#的一些代码
form读取配置文件
/// <summary>
/// 读取配置文件
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
/// 引用 port.BaudRate = int.Parse(GetConfig(string.Format("Com_{0}_BaudRate", index))); port.ByteSize = byte.Parse(GetConfig(string.Format("Com_{0}_ByteSize", index)));
private static string GetConfig(string key)
{ System.Configuration.AppSettingsReader config = new System.Configuration.AppSettingsReader();
return config.GetValue(key, typeof(string)).ToString();
}
查看代码
form遍历文件夹内的文件,返回DataTable表
public DataTable File_data(string sSourcePath)
{ DataTable Filedata = new DataTable(); //实例化
Filedata.Columns.Add("RelativePath", Type.GetType("System.String"));//添加列
Filedata.Columns.Add("FullPath", Type.GetType("System.String"));//添加列
DirectoryInfo theFolder = new DirectoryInfo(sSourcePath);//遍历文件夹
FileInfo[] thefileInfo = theFolder.GetFiles("*.*", SearchOption.TopDirectoryOnly);//仅只搜目录下的文件
foreach (FileInfo NextFile in thefileInfo) //遍历文件
Filedata.Rows.Add(NextFile.Name,NextFile.FullName);//向表添加数据
DirectoryInfo[] dirInfo = theFolder.GetDirectories(); //遍历子文件夹,返回当前目录的子目录
foreach (DirectoryInfo NextFolder in dirInfo)//
{
FileInfo[] fileInfo = NextFolder.GetFiles("*.*", SearchOption.AllDirectories);//搜子目录下的文件,功能找子目录下的文件
foreach (FileInfo NextFile in fileInfo) //遍历文件
Filedata.Rows.Add(NextFile.Name, NextFile.FullName);//向表添加数据行
}
return Filedata;//返回值
}
查看代码
调用
DataTable dt = File_data(@"D:\mywed");
计算文件的hash值
internal string CalcFileHash(string FilePath)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] hash;
using (FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read, ))
{
hash = md5.ComputeHash(fs);
}
return BitConverter.ToString(hash);
}
查看代码
webBrowser控件显示网页
this.webBrowser1.DocumentText = "<h1>测试</h1>";
form全局异常捕获
#region Constructor
static FileTransmiter()
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
} static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
StreamWriter writer = new StreamWriter(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "exec.log"), true, Encoding.Default);
writer.Write("Time:");
writer.Write(DateTime.Now.ToShortTimeString());
writer.Write(". ");
writer.WriteLine(e.ExceptionObject);
writer.Dispose();
}
#endregion
查看代码
线程委托操作控件
/// <summary>
/// 声明委托
/// </summary>
/// <param name="add_lst"></param>
public delegate void lstServeritms(string add_lst);
/// <summary>
/// 线程通过委托的方法写入控件
/// </summary>
/// <param name="add_lst">字符串"test"</param>
private void lstServeritmsResult(string add_lst)
{
if (lstServer.InvokeRequired == true)//检查是否跨线程,然后将方法加入委托,调用委托
{
lstServeritms set = new lstServeritms(lstServeritmsResult);//委托的方法参数应和SetCalResult一致
lstServer.Invoke(set, new object[] { add_lst }); //此方法第二参数用于传入方法,代替形参result
}
else
{
lstServer.Items.Add(add_lst);
} }
查看代码
DataTable修改更新数据库
private OleDbConnection oCon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\\db\\data.mdb");
DataTable dt = new DataTable();
using (oCon)
{
//先取出从数据库中取出Datatable
OleDbCommand sqlcmd = new OleDbCommand("select * from code_cheat where id=" + int.Parse(id), oCon);
oCon.Open();
OleDbDataReader sqlReader = null;
sqlReader = sqlcmd.ExecuteReader();
dt.Load(sqlReader); //修改一条记录
dt.Rows[]["code_content"] = postDataText;//修改字段的值 //以下三行代码就是把上面更改的数据更新到数据库中
OleDbDataAdapter sda = new OleDbDataAdapter(sqlcmd);
OleDbCommandBuilder sqlcmdB = new OleDbCommandBuilder(sda);
sda.Update(dt);
}
查看代码
dataGridView返回当前行单击行的值
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int rowindex = e.RowIndex;
string code_id = dataGridView1.Rows[rowindex].Cells[].Value.ToString();
}
查看代码
查询ACCESS
/// <summary>
/// OleDb查询数据库返回内容
/// </summary>
/// <param name="sql_str"></param>
/// <returns></returns>
protected DataTable dlBind(string sql_str)
{
oCon.Open();
OleDbCommand ps = new OleDbCommand(sql_str, oCon);
DataTable dt = new DataTable();
dt.Load(ps.ExecuteReader());
oCon.Close();
return dt; }
打开文件并读取内容,保存字符到文件
/// <summary>
/// 打开文件,反回字符串
/// </summary>
/// <param name="file_path">"SyntaxHighligher/com.html"</param>
/// <returns></returns>
private string openfiletext(string file_path)
{
StreamReader htmlreader = new StreamReader(file_path);
return htmlreader.ReadToEnd(); }
/// <summary>
/// 保存字符串到文件
/// </summary>
/// <param name="filetext"></param>
/// <param name="file_path">"SyntaxHighligher/com.html"</param>
private void writefiletext(string filetext,string file_path)
{
FileStream MyFileStream = new FileStream(file_path, FileMode.Create, FileAccess.Write);
StreamWriter htmlWriter = new StreamWriter(MyFileStream, System.Text.Encoding.UTF8);
htmlWriter.WriteLine(filetext);
htmlWriter.Close();
MyFileStream.Close(); }
转换人民币大写
public static string CmycurD(double num)
{
string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字
string str2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字
string str3 = ""; //从原num值中取出的值
string str4 = ""; //数字的字符串形式
string str5 = ""; //人民币大写金额形式
int i; //循环变量
int j; //num的值乘以100的字符串长度
string ch1 = ""; //数字的汉语读法
string ch2 = ""; //数字位的汉字读法
int nzero = ; //用来计算连续的零值是几个
int temp; //从原num值中取出的值 num = Math.Round(Math.Abs(num), ); //将num取绝对值并四舍五入取2位小数
str4 = (num * ).ToString(); //将num乘100并转换成字符串形式
j = str4.Length; //找出最高位
if (j > ) { return "溢出"; }
str2 = str2.Substring( - j); //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分 //循环取出每一位需要转换的值
for (i = ; i < j; i++)
{
str3 = str4.Substring(i, ); //取出需转换的某一位的值
temp = Convert.ToInt32(str3); //转换为数字
if (i != (j - ) && i != (j - ) && i != (j - ) && i != (j - ))
{
//当所取位数不为元、万、亿、万亿上的数字时
if (str3 == "")
{
ch1 = "";
ch2 = "";
nzero = nzero + ;
if (i == (j - ))//如果有"0角"则不显示零
{
nzero = ;
} }
else
{
if (str3 != "" && nzero != ) //如果是连续的0时
{ ch1 = "零" + str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ; }
else
{
ch1 = str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ;
}
}
}
else
{
//该位是万亿,亿,万,元位等关键位
if (str3 != "" && nzero != )//前面有零的除0之外的数
{
ch1 = "零" + str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ;
}
else //前面没零或 str3=0
{
if (str3 != "" && nzero == ) //值不是0时 前面没零只转换字符
{
ch1 = str1.Substring(temp * , );
ch2 = str2.Substring(i, );
nzero = ;
}
else
{
if (str3 == "" && nzero >= )
{
ch1 = "";
ch2 = "";
nzero = nzero + ;
}
else
{
if (j >= )
{
ch1 = "";
nzero = nzero + ;
}
else
{
ch1 = "";
ch2 = str2.Substring(i, );
nzero = nzero + ;
}
}
}
}
}
if (i == (j - ) || i == (j - ) || i == (j - ))
{
//如果该位是亿位万元或元位,则必须写上
ch2 = str2.Substring(i, );
}
str5 = str5 + ch1 + ch2; if (i == j - && str3 == "")
{
//最后一位(分)为0时,加上“整”
str5 = str5 + '整';
}
}
if (num == )
{
str5 = "零元整";
}
return str5;
} /**/
/// <summary>
/// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num)
/// </summary>
/// <param name="num">用户输入的金额,字符串形式未转成decimal</param>
/// <returns></returns>
public static string CmycurD(string numstr)
{
try
{
double num = Convert.ToDouble(numstr);
return CmycurD(num);
}
catch
{
return "非数字形式!";
}
}
以管理员身份运行某程序
有一条case需要测试non-admin用户下运行软件产生的event信息。 由于Automation的大job是在admin用户下运行的,因此需要切换到non-admin用户,而这无论是在WTT中还是.NET中切换用户都是比较困难的。因此需要采用run as的策略,也就是在当前的admin用户下,通过code来使得所测软件在non-admin用户下运行。
下面这段代码实现了在指定的用户下运行某程序。可以从config文件中读取指定的用户。
注意:指定用户的密码不能为空,否则会有异常抛出。
public static bool LauchMontanaBrt(string inUserName,string inPassWord)
{
try
{
Process MBRTProcess = new Process();
MBRTProcess.StartInfo.UserName = inUserName;
string strPWD = inPassWord;
SecureString password = new SecureString();
foreach (char c in strPWD.ToCharArray())
{
password.AppendChar(c);
}
MBRTProcess.StartInfo.Password = password;
MBRTProcess.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
MBRTProcess.StartInfo.FileName = "xxx.exe";
MBRTProcess.StartInfo.Arguments = "/run /wu";
MBRTProcess.StartInfo.UseShellExecute = false;
MBRTProcess.Start();
return true;
}
catch(Exception error)
{
Console.writeline(error.Message);
return false;
}
}
C#的一些代码的更多相关文章
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
- jsp前端实现分页代码
前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
- 【.net 深呼吸】限制执行代码的权限
前面好几篇文章,老周都跟大伙伴们聊了跟应用程序域有关的话题,干脆咱们一聊到底吧,做学问就应该这样,有恒心. App Domain的创建新应用程序域的方法中,有一个特殊的重载: public stati ...
随机推荐
- Ubuntu16.04安装x11VNC远程桌面
1. 安装x11vnc sudo apt-get install x11vnc 2. 设置密码 x11vnc -storepasswd 3. 修改配置文件 sudu vim /lib/systemd/ ...
- I/O性能优化
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11525014.html Linux 系统的 I/O 栈图 I/O性能指标 根据指标找工具 根据工具查指 ...
- Jenkins服务配置容易忽略的事项
git客户端必须安装(可直接yum安装) maven安装的版本(Jenkins上用其插件较稳健,亲测maven3.5是坑) settings.xml文件必要时,指定对应路径(一般选用Jenkins默认 ...
- CDH6.3.1安装hue 报错
x 一.查看日志server运行日志 /var/log/cloudera-scm-server/cloudera-scm-server.log 2019-12-11 17:28:34,201 INFO ...
- java通过url调用远程接口返回json数据
java通过url调用远程接口返回json数据,有用户名和密码验证, 转自 https://blog.csdn.net/wanglong1990421/article/details/78815856 ...
- LDD3 第11章 内核的数据类型
考虑到可移植性的问题,现代版本的Linux内核的可移植性是非常好的. 在把x86上的代码移植到新的体系架构上时,内核开发人员遇到的若干问题都和不正确的数据类型有关.坚持使用严格的数据类型,并且使用-W ...
- Codeforces Round #578 (Div. 2) E. Compress Words (双哈希)
题目:https://codeforc.es/contest/1200/problem/E 题意:给你n个单词,你需要把他合成成一个句子,相邻的两个单词,相邻部分相同的话可以把其中一个的删掉 思路:因 ...
- python最近邻分类器KNN算法
1. KNN算法 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最 ...
- fine report 连接mysql (mac)
把 /Applications/FineReport/webapps/webroot/WEB-INF/lib 下mysql-connector-java-5.1.39-bin.jar 删掉 在 htt ...
- appium移动端自动化测试的一些感想
花了一个多月的时间来复习,学习appium+python+android的UI层的自动化测试. 从最开始的环境搭建,都后面运行脚本报错各类错,到优化脚本结构,基本上问题不断. 相比,selenium做 ...