博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#的一些代码
阅读量:5330 次
发布时间:2019-06-14

本文共 11468 字,大约阅读时间需要 38 分钟。

form读取配置文件

///         /// 读取配置文件        ///         ///         /// 
/// 引用 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, 4096))            {                hash = md5.ComputeHash(fs);            }            return BitConverter.ToString(hash);        }
查看代码

 webBrowser控件显示网页

this.webBrowser1.DocumentText = "

测试

";

 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
查看代码

 线程委托操作控件

///         /// 声明委托        ///         ///         public delegate void lstServeritms(string add_lst);        ///         /// 线程通过委托的方法写入控件        ///         /// 字符串"test"        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[0]["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[0].Value.ToString();                   }
查看代码

 查询ACCESS

/// /// OleDb查询数据库返回内容/// /// /// 
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; }
View Code

打开文件并读取内容,保存字符到文件

/// ///  打开文件,反回字符串/// /// "SyntaxHighligher/com.html"/// 
private string openfiletext(string file_path){ StreamReader htmlreader = new StreamReader(file_path); return htmlreader.ReadToEnd(); }/// /// 保存字符串到文件/// /// /// "SyntaxHighligher/com.html"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(); }
View Code

转换人民币大写

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 = 0;  //用来计算连续的零值是几个            int temp;            //从原num值中取出的值             num = Math.Round(Math.Abs(num), 2);    //将num取绝对值并四舍五入取2位小数            str4 = (num * 100).ToString();        //将num乘100并转换成字符串形式            j = str4.Length;      //找出最高位            if (j > 15) { return "溢出"; }            str2 = str2.Substring(15 - j);   //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分             //循环取出每一位需要转换的值            for (i = 0; i < j; i++)            {                str3 = str4.Substring(i, 1);          //取出需转换的某一位的值                temp = Convert.ToInt32(str3);      //转换为数字                if (i != (j - 3) && i != (j - 7) && i != (j - 11) && i != (j - 15))                {                    //当所取位数不为元、万、亿、万亿上的数字时                     if (str3 == "0")                    {                        ch1 = "";                        ch2 = "";                        nzero = nzero + 1;                        if (i == (j - 2))//如果有"0角"则不显示零                        {                            nzero = 0;                        }                     }                    else                    {                        if (str3 != "0" && nzero != 0) //如果是连续的0时                        {                             ch1 = "零" + str1.Substring(temp * 1, 1);                            ch2 = str2.Substring(i, 1);                            nzero = 0;                                                     }                        else                        {                            ch1 = str1.Substring(temp * 1, 1);                            ch2 = str2.Substring(i, 1);                            nzero = 0;                        }                    }                }                else                {                    //该位是万亿,亿,万,元位等关键位                    if (str3 != "0" && nzero != 0)//前面有零的除0之外的数                    {                        ch1 = "零" + str1.Substring(temp * 1, 1);                        ch2 = str2.Substring(i, 1);                        nzero = 0;                    }                    else //前面没零或 str3=0                    {                        if (str3 != "0" && nzero == 0) //值不是0时 前面没零只转换字符                        {                            ch1 = str1.Substring(temp * 1, 1);                            ch2 = str2.Substring(i, 1);                            nzero = 0;                        }                        else                        {                            if (str3 == "0" && nzero >= 3)                            {                                ch1 = "";                                ch2 = "";                                nzero = nzero + 1;                            }                            else                            {                                if (j >= 11)                                {                                    ch1 = "";                                    nzero = nzero + 1;                                }                                else                                {                                    ch1 = "";                                    ch2 = str2.Substring(i, 1);                                    nzero = nzero + 1;                                }                            }                        }                    }                }                if (i == (j - 11) || i == (j - 3) || i == (j - 7))                {                    //如果该位是亿位万元或元位,则必须写上                    ch2 = str2.Substring(i, 1);                }                str5 = str5 + ch1 + ch2;                 if (i == j - 1 && str3 == "0")                {                    //最后一位(分)为0时,加上“整”                    str5 = str5 + '整';                }            }            if (num == 0)            {                str5 = "零元整";            }            return str5;        }         /**/        ///         /// 一个重载,将字符串先转换成数字在调用CmycurD(decimal num)        ///         /// 用户输入的金额,字符串形式未转成decimal        /// 
public static string CmycurD(string numstr) { try { double num = Convert.ToDouble(numstr); return CmycurD(num); } catch { return "非数字形式!"; } }
View Code

 以管理员身份运行某程序

有一条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;            }        }
View Code

 

转载于:https://www.cnblogs.com/praybb/p/5454487.html

你可能感兴趣的文章
分布式系统的一致性级别划分及Zookeeper一致性级别分析
查看>>
单例模式的几种实现方式及对比
查看>>
Java中synchronized关键字你知道多少
查看>>
IDEA乱码Tomcat控制台乱码输出乱码报文乱码
查看>>
如何用上新版本的 IDEA(IDEA 2019.2.2版本)
查看>>
第十二周学习记录
查看>>
Html 5优化
查看>>
python 协程, 异步IO Select 和 selectors 模块 多并发演示
查看>>
android SDK Manager更新不了,出现错误提示:"Failed to fetch URL..."!
查看>>
"NHibernate.Exceptions.GenericADOException: could not load an entity" 解决方案
查看>>
Visual Studio 2010 集成 SP1 补丁 制作 Visual Studio 2010 Service Pack 1 完整版安装光盘的方法...
查看>>
jmeter maven自动移动jar包windows 批处理命令
查看>>
奇偶排序Odd-even sort
查看>>
修改nvm镜像地址
查看>>
Intent StartActivityForResult()
查看>>
targetCompatibility = '1.7' sourceCompatibility = '1.7'
查看>>
Git---创建版本库
查看>>
设置程序图标-初识IOS
查看>>
string 常用方法
查看>>
Linux复制命令cp进阶
查看>>