摘要:
第一种 直接操作byte数组private void SetValue(byte[] byteArr) { byte[] LenK = new byte[4]; byte[] LenIV = new byte[4]; Buffer.BlockCopy(byteArr,0,LenK,0,4); Buffer.BlockCopy(byteArr, 4, LenIV, 0, 4); int lenK = BitConverter.ToInt32(LenK, 0); int lenIV = BitConverter.ToInt32(LenIV, 0); byte[] KeyE... 阅读全文
摘要:
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同A表idname1Pirate2Monkey3Ninja4SpaghettiB表idname1Rutabaga2Pirat 阅读全文
摘要:
C#内存释放便于对文章的开展,需要先明确两个概念。第一个就是很多人用.Net写程序,会谈到托管这个概念。那么.Net所指的资源托管到底是什么意思,是相对于所有资源,还是只限于某一方面资源?很多人对此不是很了解,其实.Net所指的托管只是针对内存这一个方面,并不是对于所有的资源;因此对于Stream,数据库的连接,GDI+的相关对象,还有Com对象等等,这些资源并不是受到.Net管理而统称为非托管资源。而对于内存的释放和回收,系统提供了GC-Garbage Collector,而至于其他资源则需要手动进行释放。那么第二个概念就是什么是垃圾,通过我以前的文章,会了解到.Net类型分为两大类,一个就 阅读全文
摘要:
reportInfoForm = new ReportInfoForm(timsControl); reportInfoForm.MdiParent = this; reportInfoForm.Location = new Point(0, 0); reportInfoForm.Show(); particularInfo = new ParticularInfo(timsControl); particularInfo.MdiParent = this; particularInfo.Location = new Point(reportInfoForm.Left, reportInfoF 阅读全文
摘要:
本例主要功能为跨线程为控件赋值,并且实现listview控件保持选中状态以及在可见区域显示 /// <summary> /// 为控件赋值的委托 /// </summary> /// <param name="realTimeRecord"></param> delegate void SetListViewCallback2(List<CheckedItRecord> checkedItRecordList); int itemIndex = -1;//初始化listview选中项的索引#region 跨线程绑定 阅读全文
摘要:
#region 初始化历史播放列表 /// <summary> /// 初始化历史播放列表 /// </summary> private void InitHistoryPlayList(string date, string deviceID) { try { this.lvwHistoryPlaylists.Items.Clear(); List<CheckedItRecord> checkItRecordList = timsControl.GetPublishSuccessInfo(date, deviceID); if (checkItRecord 阅读全文
摘要:
#region 初始化设备信息 /// <summary> /// 初始化设备信息 /// </summary> private void InitVMSDevice() { DataTable dt = timsControl.GetVMSDeviceInfo(); DataRow dr = dt.NewRow(); dr["glid"] = "-1"; dr["azdd"] = "请选择"; dt.Rows.InsertAt(dr, 0); if (dt != null &&am 阅读全文
摘要:
#region 上移位置 /// <summary> /// 上移方法 /// </summary> /// <param name="listView"></param> private void ListViewUpMove(ListView listView) { if (listView.SelectedItems.Count == 0) { return; } listView.BeginUpdate(); if (listView.SelectedItems[0].Index > 0) { foreach ( 阅读全文
摘要:
在网上找的资料int[] intArr = GetRandom1(1, 100000, 10000); /// <summary> /// 获取不重复的随机数数组 /// </summary> /// <param name="minValue">最小值</param> /// <param name="maxValue">最大值</param> /// <param name="count">数量</param> /// <retu 阅读全文