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#的一些代码的更多相关文章

  1. 日期格式代码出现两次的错误 ORA-01810

    错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...

  2. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  3. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  4. Jquery的点击事件,三句代码完成全选事件

    先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  5. redux-amrc:用更少的代码发起异步 action

    很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...

  6. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  7. 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序

    直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...

  8. jsp前端实现分页代码

    前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...

  9. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

  10. 【.net 深呼吸】限制执行代码的权限

    前面好几篇文章,老周都跟大伙伴们聊了跟应用程序域有关的话题,干脆咱们一聊到底吧,做学问就应该这样,有恒心. App Domain的创建新应用程序域的方法中,有一个特殊的重载: public stati ...

随机推荐

  1. Linux自用指令——2019年10月23日

    1.ls ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. ls -a 列出目录所有文件,包含以.开始的隐藏文件 ...

  2. android智能手机如何查看APK包名

    工具/原料   智能手机一部 USB线一根 方法/步骤   1 首先.使用USB线,将电脑和手机连起来.注意.手机的USB调试默认需要打开,如下图所示. 2 然后启动电脑端的cmd应用,进入dos界面 ...

  3. php ucfirst()函数 语法

    php ucfirst()函数 语法 作用:字符串首字母大写 语法:ucfirst(string) 参数: 参数 描述 string 必须,规定要转换的字符串 说明:把字符串中的首字符转换为大写.直线 ...

  4. LOJ 2303 「NOI2017」蚯蚓排队——链表+哈希表

    题目:https://loj.ac/problem/2303 想到合并的时候可以只考虑接口附近的50个,但不太会分析复杂度,而且没有清楚地想到用哈希值对应个数. 看了题解才会…… 一直想用 splay ...

  5. iPad如何恢复

    iPad在有网络连接的情况下,可以通过iCloud进行恢复. 没有连接WiFi的情况下,只能通过USB连接才能恢复. ①下载最新版本的iTunes:https://support.apple.com/ ...

  6. webpack 中vue文件使用scss需要注意的地方

    需要使用npm添加node_sass和sass_loader 并且在配置文件中添加规则: { test: /\.scss$/, use: ["style-loader", &quo ...

  7. PHP常用

    php.ini文件配置 时间配置PRC中国 date.timezone = PRC 文件上传file_uploads = On //支持http上传upload_tmp_dir = //临时文件保存路 ...

  8. 编译-构建Shell语法的语法树(parse tree)

    翻译自:Generating a parse tree from a shell grammar - DEV Community

  9. Java8新特性-日期相关类操作

    JDK8以前使用SImpleDateFormate类格式化日期,因为在SImple DateFormate中存在Calendar实例引用,而在caleander中得establish中存在clear( ...

  10. CSS最基础的语法和三种引入方式

    **CSS语法** CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明.选择器通常是您需要改变样式的 HTML 元素. selector {declaration1; declaration ...