![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
北京的雾霾天
平民百姓
展开
-
未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
如果确认安装了Office的正确版本,那么需要检查下是不是调用程序和安装的Office是不是同样是x64或同样是x86, 如果两者不一致,请修改其中一个,当然最好是修改调用程序的配置,当然,如果是Anycpu可能需要确认Office和你的机器位数一致,或修改明确的选择(X64、X86)。原创 2013-01-17 09:12:27 · 2016 阅读 · 0 评论 -
Excel中$FilterDatabase的显示及编辑方法
使用Excel的时候明明就一个Sheet1,可是编程使用Microsoft.ACE.OLEDB.12.0确能得到两个表结果: Sheet1$Sheet1$FilterDatabase 打开Excel文件查找“名称管理器”(公式-名称管理器)并不能找到这个FilterDataBase名称,其实这个是隐藏了,可以通过宏来显示: 打开那个VB宏编辑器(Atl+F11或通原创 2013-01-17 09:35:05 · 18165 阅读 · 3 评论 -
阮一峰:字符串匹配的Boyer-Moore算法
阮一峰:字符串匹配的Boyer-Moore算法 上一篇文章,我介绍了 KMP 算法。但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用 Boyer-Moore 算法。 Boyer-Moore 算法不仅效率高,而且构思巧妙,容易理解。1977 年,德克萨斯大学的 Robert S. Boyer 教授和 J Strother转载 2013-05-04 12:27:46 · 1185 阅读 · 0 评论 -
.net中实现联合体类型
VC.Net语法: /*表达式元素*/ [System::Runtime::InteropServices::StructLayout( System::Runtime::InteropServices::LayoutKind::Explicit)] ref struct EI { public: [System::Runtime::InteropServices::Fie原创 2013-05-22 15:40:03 · 1095 阅读 · 0 评论 -
Access的Oledb类型对照表
http://support.microsoft.com/kb/320435最常见的数据类型映射的列表下表列出了最常见的数据类型,用于在 Microsoft Access 和这些数据类型与 Microsoft.NET Framework 数据类型以及OleDbType枚举的相关。访问权限类型名称数据库数据类型OLE DB 类型.NET Framework转载 2013-10-18 08:54:15 · 3910 阅读 · 0 评论 -
C#转换运算符
C# 允许程序员在类或结构上声明转换,以便类或结构与其他类或结构或者基本类型进行相互转换。 转换的定义方法类似于运算符,并根据它们所转换到的类型命名。 要转换的参数类型或转换结果的类型必须是(不能两者同时都是)包含类型。class SampleClass{ public static explicit operator SampleClass(int i)原创 2014-04-30 12:48:04 · 1895 阅读 · 0 评论 -
mvc中将视图输出成字符串
private string renderViewToString(ControllerBase controller, WrapResult viewModel) { controller.ViewData.Model = viewModel; using (var sw = new System.IO.StringWriter()原创 2014-11-19 12:30:26 · 3449 阅读 · 0 评论 -
Graphics平移原点及向上向右方向为正方式变换
Image img = Image.FromFile(path); using (var g = Graphics.FromImage(img)) { g.Transform = new System.Drawing.Drawing2D.Matrix(1, 0, 0, -1, 0, 0);原创 2014-11-19 12:38:59 · 2867 阅读 · 0 评论 -
使用Emit写入指定编写轻量函数
使用DataReader把数据直接读取到一个指定的类型列表中。省去了像使用Xml或DataTable等中间类型转换,提高了性能。相当于直接从数据库中读取了存储的对象。使用Emit比使用反射性能要高很多。因为它相当于直接运行编码的函数,而反射有很大的性能损耗。然后编写这个动态的函数也需要一定的消耗,所以对于反复使用的类型可以缓存这个编写好的方法以便快速的执行。 (修改:增加了一个编译条原创 2012-08-03 16:20:15 · 4115 阅读 · 2 评论 -
VisualStudio App.Config自动配置
在VisualStudio中,可以跟据选定的运行模式自动生成相应的配置文件;对web类型的项目,系统已自动有了Web.config、Web.Debug.config、Web.release.config三个配置,且可自动使用转换工具自动来实现转换。对于像应用程序之类的项目,没有能自动实现这些,这对于项目的发布有的时候是个问题。对于这种情况,可以如下配置项目文件以实现相同功能:1:卸载要原创 2016-07-28 16:58:19 · 6280 阅读 · 0 评论 -
CSV文件解释代码
CSV文档规则1:数据使用逗号分隔;2:内容中可以包括用于分隔数据的逗号,此类数据使用双引号括起;3:数据中如果包括双引号,需要使用两个双引号;代码中没有使用Remove和Substring等函数对源串进行处理,而是使用了索引来定位字符串值。下面的代码将CSV文件解释出的数据存放到DataTable中以便使用。附计算的活动图。 ///原创 2013-05-16 15:29:18 · 1535 阅读 · 0 评论 -
VC.Net、C#.Net语法上很难想到的几点不同处
1:调用基类构造函数:C#public subclassname(object arg): base(arg){}C++h文件public: subclassname(System::Object^ type);cpp文件subclassname(System::Object^ type): baseclassname(type){}2:重写基类方法:C#原创 2012-12-12 11:13:33 · 1754 阅读 · 0 评论 -
win7下的TreeView
在win7下TreeView可能会出现一个问题:当节点多的时候,最后一行的节点可能会被滚动条给忽略掉。除非把树控件拉大,否则就很难操作到它。其实有一个很简单的解决方法。就是在加载节点的时候,使用BeginUpdate和对应的EndUpdate。如下所示:try{ this.treeView.BeginUpdate(); //loadTreeNodes...}原创 2012-11-05 11:57:06 · 1511 阅读 · 0 评论 -
.net写的WebService被Java调用
Java调用.net的WebService时有参无参都可以成功:[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_原创 2011-09-26 08:35:45 · 3626 阅读 · 0 评论 -
mFileTracker : error FTK1011
使用VS2010编译时出错: mFileTracker : error FTK1011... 解决方法:打开文件: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Target原创 2011-10-04 12:31:38 · 1087 阅读 · 0 评论 -
Remoting获取客户端的外网IP地址
其实在服务端Remoting可以像读取一个变量一样来获取到连接过来的客户端的IP,不过这个IP不是太容易的取到。网上有一个解决方案就是使用配置文件来吸取IP地址,但是这个方案需要我们使用配置文件来使用Remoting,如果我们是代码形式的程序,那么怎样获取客户端IP呢。Remoting、WebService底层都是用Socket来实现,Socket本身很容易的可以获取到IP地址,所以理论上原创 2012-07-11 10:40:06 · 3256 阅读 · 0 评论 -
C#应用程序以管理员身份运行
VISTA Windows 7 都使用了UAC来控制程序访问,对于一些需要使用管理员身份运行的程序就得右键以管理员身份运行。C# 编程中可以使程序自动使用管理员身份运行,也就是我们常常看到一些程序的图标上会冒出个盾牌。在源码的Properties目录中找到 app.manifest,将其中level="asInvoker" 改成 level="requireAdministrator"转载 2012-07-20 09:20:55 · 823 阅读 · 0 评论 -
64位系统?
IntPtr.Size PropertyProperty ValueType: System.Int32The size of a pointer or handle in this process, measured in bytes. The value of this property is 4 in a 32-bit process, and 8 in a 64-bit pro原创 2012-07-24 18:03:12 · 636 阅读 · 0 评论 -
获取应用运行目录
WinForm:Application.StartupPath;Application.ExecutablePath;WindowService 或其它:System.AppDomain.CurrentDomain.BaseDirectory;System.Reflection.Assembly.GetExecutingAssembly().Location;除原创 2012-07-19 08:54:05 · 619 阅读 · 0 评论 -
.net的一个Bug:Int64与Byte[8]互转的问题
有一个64位整数值: Int64 n = 634636512000000000;有两种方法可以转为字节流1: byte[] buffer = new byte[8]; buffer[0] = (byte)n; buffer[1] = (byte)(n >> 8); buffer[2] = (byte)(n >> 0x10); buffer原创 2012-09-13 17:42:25 · 4313 阅读 · 0 评论 -
异常处理的性能问题
MSDN:异常处理通常,错误条件都将作为常规流程控制使用。在此情况下,如果试图通过编程将用户添加到 Active Directory 实例中,则只能试着添加该用户,如果系统返回 E_ADS_OBJECT_EXISTS HRESULT,则说明它们已经存在于该目录中。此外,您也可以通过搜索目录查找该用户,如果搜索失败则只需添加该用户。按照常规流程控制使用错误,在 CLR 环境中会降低性能。原创 2012-09-24 18:25:04 · 1366 阅读 · 0 评论 -
自定义C#值类型的的集合
请注意,在创建集合(例如,浮点数组列表)时,添加到集合中的每一项都将进行装箱。您应该考虑使用数组或为值类型创建自定义集合类。--MSDN原创 2012-09-24 18:40:57 · 1258 阅读 · 0 评论 -
重复的列名添加到DataTable算法
DataTable的Columns不能添加重复的列,但是Sql语句中确实可以有重复的列名,如下代码自动命名得复的列名并添加到DataTable: int index = 1; string colName = ColumnName; while (m_DataTable.Columns.Contains(colName)) { colName = args.Colum原创 2012-09-26 15:22:20 · 4607 阅读 · 0 评论 -
.net自定义程序集版本号
默认版本号如下:[assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")] 如果需要指定版本号可以改写上面的数字。但是也可以自动的让VS自已来处理,比如:[assembly: AssemblyVersion("1.0.*")]//[assembly: AssemblyFil原创 2012-11-01 14:31:55 · 1903 阅读 · 0 评论 -
打印预览大图片
(下载源程序请到“我”的资源里)如何在C#里打印较大的图到几张纸里?其实好多工作我们都可以很好的用C#来完成,如下是程序要打印的预览的较大的图及程序运行的效果图:原创 2008-01-23 11:49:00 · 1950 阅读 · 0 评论