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 ...
随机推荐
- 13.以太坊中web3访问合约账户出现问题——2019年09月29日
title: 合约交互时发现访问不了地址的bug date: "2019-09-29 10:17:16" tags: Dapp开发 categories: 技术驿站 在编写合约交互 ...
- Autoit 3 常用的语句
{系统环境变量} EnvUpdate ( ) ;更新环境变量 EnvGet ( "变量名称" ) ;取环境变量 ClipGet ( ) ;取剪辑板文本 EnvSet ( " ...
- paper 157:文章解读--How far are we from solving the 2D & 3D Face Alignment problem?-(and a dataset of 230,000 3D facial landmarks)
文章:How far are we from solving the 2D & 3D Face Alignment problem?-(and a dataset of 230,000 3D ...
- 使用C#登录带验证码的网站
我在上一篇文章中已经讲解了一般网站的登录原来和C#的登录实现,很多人问到对于使用了验证码的网站该怎么办,这里我就讲讲验证码的原理和对应的登录方法.验证码的由来几年前,大部分网站.论坛之类的是没有验证码 ...
- arcpy 常用操作
目录: 通用操作 条件函数 前提: import arcpy from arcpy.sa import * 1.通用操作 设置工作路径:arcpy.env.workspace("path_o ...
- CentOS7 防火墙Firewall常用命令
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disab ...
- 使用Android Studio打出apk包
参考: Android Studio 超级简单的打包生成apk https://blog.csdn.net/hefeng6500/article/details/79869647 为什么要打包: ap ...
- 使用iconv提示未知错误
使用iconv 转化编码的时候提示错误:<b>Notice</b>: iconv() [<a href='http://www.jinyuanbao.cn'>fun ...
- mybatis Invalid bound statement (not found)错误解决办法
由于新版的IntelliJ IDEA不再编译source folder下的xml文件,而我们平时使用mybatis时,习惯于将*Mapper.xml文件放在与dao层.service层平级的src目录 ...
- CET-6 分频周计划生词筛选(Week 1)
Week 1 2016.09.03 p17 bias = prejudice / prejudge p18 diminish p19 distinguish/extinguish + majority ...