摘要:
一. 摘要 在C#开发的过程中,经常需要操作Oracle数据库,而实际在部署程序的时候,经常要根据系统环境(32、64bit)、不安装Oracle客户端等等需求,而Odp.net 也没有完美兼容的类库,应用可以调用, 所以部署起来总是碰到各种问题,挺头疼的,在这里,我对工作中碰到的问题进行总结一下。 二. 本文提纲 连接方式 32位系统 64位系统 免安... 阅读全文
摘要:
Data Control类 型前 缀示 例AccessDataSourceadsadsPubsDataListdlstdlstTitlesDetailViewdvwdvwTitlesFormViewfvwfvwFontsGridViewgvwgvwCityObjectDataSourceodsodsMenusRepeaterrptrptQueryResultsReportViewerrvwrvwRecordSiteMapDataSourcesmdssmdsSiteSqlDataSourcesdssdsBooksXmlDataSourcexdsxdsTitlesValidation Contro 阅读全文
摘要:
由于第一次有勇气尝试写技术文章,很多要领都掌握的都不好,很多内容都是从网友那里借鉴来的,这次花了几小时,自己一边总结一边写,很多以前没注意到的细节都,让我明白了,原来懂、会做和真正写出来是完全不同的。感谢各位园友的无私奉献。 学习之路还很长,希望这是一个好的开始。一. ISO/OSI模型 在20世纪80年代早起,国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互联为网络的标准框架,简称OSI, 即开放式通信系统互联网参考模型(Open System Interconnection, OSI/RM, Open Systems Interconnection Refere... 阅读全文
摘要:
一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora)1. 添加命名空间System.Data.OracleClient引用2. using System.Data.OracleClient;3.string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;";OracleConnection conn = new OracleConnection(connString);try{ conn.Open(); MessageBox.Show 阅读全文
摘要:
1、 如何解决单击记录整行选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click2、 如何新增一条记录(1)、gridView.AddNewRow()(2)、实现 gridView_InitNewRow 事件3、如何解决 GridControl 记录能获取而没有显示出来的问题gridView.populateColumns();4、如何让行只能选择而不能编辑(或编辑某一单元格)(1)、View->OptionsBehavior->EditorShowMode 设置为:Click(2)、View->OptionsBe 阅读全文
摘要:
1.auto自动变量,函数凡是未知存储类型说明的变量均为自动变量。也就是说,局部变量在默认情况下是自动变量。调用时就存在,退出时就消失。2.register寄存器变量,当一个变量频繁永定时,必须要反复访问内存,从而耗费大量的存取时间,为此,定义寄存器变量存放在CPU的寄存器中。对于循环次数较多的循环控制变量及循环体内反复使用的变量可定义为寄存器变量。3.extern外部变量,当一个程序被分成两个或多个文件,分别编译它们,然后将它们连接起来,必然产生一些问题,如文件之间如何共享全局变量。一个全局变量只能说明一次,而在多个文件的程序中,会有两个或多个文件都需要访问这个全局变量。因此,必须提供一种方 阅读全文
摘要:
1.求自然数1~10的平方根和立方数#include <stdio.h>#include <math.h>int main(){int x=1;double squareroot, power;while(x<=10){squareroot=sqrt(x);power=pow(x, 3);printf("%d的平方根是:%.2lf\n%d的立方是:%.2lf\n", x, squareroot, x, power);x++;}return 0;}2.内置函数floor()和ceil()的用法#include <stdio.h>#in 阅读全文
摘要:
1.指针用法事例#include <stdio.h>int main(){int var=10;int *ptr_var;//指针ptr_var指向变量varptr_var = &var;//输出变量var的值和var的地址printf("var的值是:%d\n", var);printf("var的地址是:%x\n", &var);//输出ptr_var的地址printf("ptr_var的地址为:%x\n", &ptr_var);//输出指向变量的指针, 输出变量var的值和存储地址printf 阅读全文
摘要:
声明一个值类型变量,编译器会在栈上分配一个空间,这个空间对应着该值类型变量,空间里存储的就是该变量的值。引用类型的实例分配在堆上,新建一个引用类型实例,得到的变量值对应的是该实例的内存分配地址,这就像您的银行账号一样。具体哪些类型是值类型哪些是引用类型,大家翻翻书,背一背就好了,不过它们有什么区别呢? 区别: 1、值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。 2、引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。 3、值类型继承自ValueType(注意:而System.ValueType又继承自System.Objec... 阅读全文
摘要:
这个内容在cnblogs中也讨论过很多次了,这两天大概看了一些资料,看到一些简单的性能指标拿出来和大家讨论一下。Socket + Threads/ThreadPool大概性能:小于1500个连接实现:Accept一个Socket,就交给一个线程去管理,比较笨,但也比较有效,因为是同步方式,控制起来很方便。高级点的,就是交给一个线程池去管理,线程池由系统自动托管,省去了开销线程的时间。一般小型项目,用这个完全足够,开发也简单。但要注意,如果若干Socket长时间占用线程池中的线程,同时其它连接数又比较多,很容易出现提示说你没有足够的线程供使用。呵呵,让Socket少做点事,少占用时间,换一个快点 阅读全文