1. 读写文件操作

using (file = new System.IO.StreamReader(inputfile))
{
  using (outfile = new System.IO.StreamWriter(outputfile))
  {      
    try
    {
      while ((line = file.ReadLine()) != null)
      {
        /// do something
      }
    }
    catch (Exception e)
    {
      ...
    }
  }
} 2. 文件及文件夹的相关API 得到文件当前目录:  string fileDir = System.IO.Path.GetDirectoryName(fileName);
得到当前文件的名称   System.IO.Path.GetFileNameWithoutExtension(fileName)
判断文件是否存在:  System.IO.File.Exists(fileName)
判断文件夹是否存在: Directory.Exists(directory)
删除文件夹及子目录: Directory.Delete(directory, true);
新建文件夹:   Directory.CreateDirectory(directory); 得到当前文件夹的所有子文件夹: System.IO.Directory.GetDirectories(directory)
得到当前文件夹下所有文件: System.IO.Directory.GetFiles(directory)
得到文件夹信息:    DirectoryInfo di = new DirectoryInfo(fileDir);
文件夹的名字:    di.Name
文件夹的上级文件夹名字: di.Parent.Name
得到文件的相关信息: FileInfo fileInfo = new FileInfo(fileName);
得到文件大小: fileInfo.Length
得到文件最后修改时间:fileInfo.LastWriteTimeUtc 3. 多线程的lock
public class TestMonitor
{
  /// <summary>
  /// lock
  /// </summary>
  private readonly object mlock = new object();
  
  /// <summary>
  /// test lock
  /// </summary>
  public void TestStatus()
  {
    bool taken = false;
    try
    {
      Monitor.Enter(mlock, ref taken);
      /// do something
    }
    finally
    {
      if (taken == true)
      {
        Monitor.Exit(mlock);
      }
    }
  }
} 4. 程序中配置一个计时器类(Monitor),用于做运行时间测算:
this.beginTime = DateTime.UtcNow;
this.endTime = DateTime.UtcNow; 

this.duration = this.endTimeSpan.Subtract(this.beginTime);
5. 程序中配置一个日志类(Logger),用于记录程序运行异常及输出,而且最好可以把Logger类设置成统一接口,用于console和文本日志的输出
Logger.WriteLine(string, msgTag);

6. 字符串常量定义在前面,const或readonly
7. 项目中要有一个common settings 类,用于设置程序的各种参数值,Application.Properties.Settings.Default.xxx

8. SqlClient数据库总结:

1. Insert:
try
{
  using (SqlConnection conn = new SqlConnection(this.connectionString))
  {
    using (SqlCommand cmd = conn.CreateCommand())
    {
      conn.Open();
      cmd.CommandText = @"insert table values (@Test);";
      cmd.Parameters.AddWithValue("@Test", "testData");
      cmd.ExecuteNonQuery();         
    }   
  }
}
catch (Exception e)
{
  throw e;
} 2. Build Connection String:
SqlConnectionStringBuilder connStringBuilder;
connStringBuilder = new SqlConnectionStringBuilder();
connStringBuilder.DataSource = this.dataSource;
connStringBuilder.InitialCatalog = this.databaseName;
connStringBuilder.Encrypt = true;
connStringBuilder.TrustServerCertificate = false;
connStringBuilder.UserID = this.userName;
connStringBuilder.Password = this.password;
this.connectionString = connStringBuilder.ToString();
3. Query:
SqlDataReader reader;
DataTable result = new DataTable(); try
{
  using (SqlConnection conn = new SqlConnection(this.connectionString))
  {
    using (SqlCommand cmd = conn.CreateCommand())
    {
      conn.Open();
      SqlCommand command = new SqlCommand(sqlcommand, conn);
      reader = command.ExecuteReader();
      result.Load(reader);
    }
  }
}
catch (Exception e)
{
  throw e;
}
4. 最好建立一个通用的接口,可以给不同的应用使用同一个接口,比如insert的接口,需要统一。


 









       

最新文章

  1. [转]netty对http协议解析原理
  2. IIS7+windows 64位配置注意事项
  3. 【Android UI设计与开发】3.引导界面(三)实现应用程序只启动一次引导界面
  4. HDU-2710 Max Factor
  5. JS之路——日期函数
  6. php执行shell更新svn文件的方法
  7. gaoyong的干货
  8. VSTO学习笔记(九)浅谈Excel内容比较
  9. TRIGGER的使用(修改SP自动触发)
  10. C#中一些默认的预定义属性
  11. java编程基础知识及常见例题
  12. Linux内存管理之mmap详解
  13. ORA-12052: cannot fast refresh materialized view
  14. day09 MapReduce
  15. 2017-2018-1 20155336 《信息安全系统设计基础》加分作业:实现mypwd
  16. Linux内核同步 - Per-CPU变量
  17. Tomcat部署静态网站
  18. spring常用管理bean注解
  19. vue 的小秘密
  20. Git学习1:Git起步

热门文章

  1. Android版本4.0~7.0
  2. 第四十章 微服务CICD(2)- jenkins(war版)
  3. KMP匹配算法
  4. 总结--解决 mysql 中文乱码
  5. sqlserver索引与查询优化
  6. OPENQUERY 无行返回 无数据返回 数据缺失
  7. typedef 与指针、多维数组
  8. 让padding、border等不占据宽度
  9. whoami与who am i
  10. 新手看Mockplus