mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
dev
dev

final、static(Java)和const、static(C#)

C#中的static 和Java中的static 简单,两者用法完全是一致的。从两方面讨论: 1. 变量是属于类的,不是实例级别的。只能通过类名调用,不能通过实例调用。 2. 如果在定义时就赋值了,那么在类初始化的时候,最先完成所有静态变量的赋值。但是要注意,所有静态变量的初始化顺序是无法确定的。 C# 中的const 和Java中的finnal 很长一段时间我一直认为两者是相同的作用,无非是变量初始化后不能更改,即只能在定义时或者构造函数中赋值。然而这仅仅只是片面的,下面将为大家详细分析: 1.修饰变量 准确的说C#中的const 等价于 Java中的static final,也就是说,Java中final不具有static的功能。而C#中的const具有static的功能。因此在C#中 public static const string 等将于 public const string。 2.修饰类和方法 此时Java中的final类似C#中的sealed,就是说,final修饰的类不能被继承,final修饰的方法不能被覆盖。 而C#中的const不能修饰类和方法。 问题: 1. 私有静态成员的作用(private static 变量) 字面表示私有的,类外不能使用;静态的,全局变量。看上去很矛盾,又不能被类外使用,要全局的有什么用。问得好,类中全局也是很有意义的,例如 private static int a = 5,那么就可以保证变量a在类的初始化过程中将被优先初始化(在构造函数执行之前)。这样如果对象A的初始化需要对象B的实例,那么就可以用这种申明,以保证在类A在构造函数中能够使用类B的实例。同时private又能够保证类B的实例只能在类A中使用,起到很好的密封作用。 2. 私有最终成员作用(private final 变量) 在类构造函数完成前必须对该成员完成初始化,一旦定义不许更改;该成员只能在本类中使用。实例,子类中都不能使用。 private static final修饰的成员在申明的时就被赋值,保证在构造函数中可以被使用,一个被private static final修饰的成员通常表示其他组件的一个实例,且变量是类中的全局变量。 private final         修饰的成员在构造中被赋值,表示它是该类全局的私有成员变量,且该类的构造需要传入他们的初始值,才能完成类的初始化。

2011-02-24 0comments 267hotness 0likes mikebai Read all
dev

Android模拟器快捷键

  Home键(小房子键) 在键盘上映射的就是home键,这倒是很好记。 Menu键 用于打开菜单的按键,在键盘上映射的是F2键,PgUp键同样可以。另外,看英文原文的意思,貌似这个键在某些机型上会被设计为左软件(left softkey) Start键 这个键在模拟器和G1真机上我都没有找到到底是哪个键。映射的是Shift+F2或PgDn,某些机型会被设计为右软键(right softkey)。 Back键 返回键,用户返回上一个UI或者退出当前程序。键盘上映射ESC键。 Call/Dial键(电话键) 接听来电或启动拨号面板,这是一部手机最基本的功能键。PC键盘映射为F3键。 Hangup/Light Off键(挂机键) 挂断电话或关闭背灯用。键盘映射F4键。 Search键 在提供了Search功能的应用里快速打开Search对话框,比如在Browser里可以快速打开地址搜索栏。键盘映射F5。 Power Down键(关闭电源) 对应模拟器左上边缘的电源按钮,不过似乎在模拟器上按这个键并没什么用处。键盘映射F7。 Volume Up (增大音量) 键盘映射Ctrl+5,也可以使用小数字键盘的”+”键。 Volume Down(减小音量) 键盘映射Ctrl+6,也可以使用小数字键盘的”-”键。 Camera 键 键盘映射Ctrl+F3。不过也许是我设置有问题,在模拟上用这个快捷键似乎没任何反应。

2011-02-19 0comments 267hotness 0likes mikebai Read all
dev

SQL2005表结构一览SQL文

SELECT  *FROM    syscolumnsWHERE   id = OBJECT_ID('fs_ads_stat')ORDER BY colorder ASC SELECT    --A.id,        表名 = D.NAME ,  --表名 = CASE WHEN A.COLORDER = 1 THEN D.NAME  --           ELSE ' '  --           END ,        字段序号 = A.COLORDER ,        字段名 = A.NAME ,        标识 = CASE WHEN COLUMNPROPERTY(A.ID, A.NAME, 'ISIDENTITY ') = 1                  THEN '√ '                  ELSE ' '             END ,        主键 = CASE WHEN EXISTS ( SELECT  1                                FROM    SYSOBJECTS                                WHERE   XTYPE = 'PK '                                        AND PARENT_OBJ = A.ID                                        AND NAME IN (                                        SELECT  NAME                                        FROM    SYSINDEXES                                        WHERE   INDID IN (                                                SELECT  INDID                                                FROM    SYSINDEXKEYS                                                WHERE   ID = A.ID                                  

2010-09-21 0comments 251hotness 0likes mikebai Read all
dev

文本框获得焦点并删除原内容

如果文本框内已经有用户输入的内容了,那么就不应该进行清除文本款内容这个动作了。 blueprince给出了如下代码:<script type="text/javascript">function OnEnter( field ) { if( field.value == field.defaultValue ) { field.value = ""; } }function OnExit( field ) { if( field.value == "" ) { field.value = field.defaultValue; } }</script><input type=text value="预设文字" onmouseover="this.focus(); OnEnter(this)" onmouseout="this.blur(); OnExit(this)"> 不过上面的代码有一个非常奇怪的行为,就是当鼠标移出文本框后,文本框就会失去焦点,从而造成用户输入无效,应该是由OnExit函数造成的。而浏览器的默认行为应该是:只要用户不点击页面其它部分或者是按tab键,已经获得焦点的表单就不应该失去焦点。我们稍微修改一下代码就可以让文本框的行为回归正常,效果和代码如下:<script type="text/javascript">function OnEnter(field){ field.focus(); if(field.value == field.defaultValue){ field.value = ""; } }function OnExit(field){ if(field.value == ""){ field.value = field.defaultValue; } field.focus();}</script>

2010-04-16 0comments 261hotness 0likes mikebai Read all
dev

SQLServer2005常用服务、数据库创建的相关内容

一、SQL Server 2005常用服务查看服务:右击我的电脑--管理--服务和应用程序--服务1、SQL Server(MS SQL Server):SQL Server的核心服务,引擎,此服务停止后,SQL Server则无法使用说明:MS SQL Server为实例,表示每个服务都有自己的服务2、SQL Server Active Directory Helper:与AD(Active Directory活动目录)集成服务3、SQL Server Agent(MS SQL Server):代理服务4、SQL Server Analysis Services(MS SQL Server):分析服务,(OLAP)联机分析(SQL Server 2005新增)5、SQL Server Browser:SQL Server浏览服务6、SQL Server FullText Search(MS SQL Server):SQL Server全文检索7、SQL Server Integration Services:集成服务与(OLAP)一起来用(SQL Server 2005新增)8、SQL Server Reporting Services(MS SQL Server):报表服务(SQL Server 2005新增)9、SQL Server Vss Write:卷影服务(VSS编辑器)说明:A、掌握如何启动、暂停、停止核心服务:停止:断开所有的用户连接暂停:不允许新用户的连接,但如果已经连接可以继续使用B、SQL Server的启动过程:开始 -- 程序 -- Microsoft SQL Server 2005 -- SQL Server Management Studio(SSMS)C、SQL Server身份验证:登录名:Sa -- SQL Server的管理员密码:dufei 二、数据库1、图形界面:右击数据库--新建数据库--数据库名称--确定2、系统自带数据库:master:核心数据库,存放系统的配置信息model:模板数据库,为用户数据库提供一个原始数据msdb:代理服务数据库,为代理、任务、作业提供一个临时的存储空间tempdb:临时数据库,存放的是一些临时数据ReportServer:用于存放报表服务的数据库ReportServerTempDB:报表服务临时数据库说明:从C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data里面可删除数据库的内容3、示例数据库的安装:菜单栏CD--Capture ISO Image ... -- 放入SQL Server 2005企业版的第二张盘 -- 安装好后取消--开始 -- 设置--控制面板--添加或删除程序--Microsoft SQL Server 2005--更改--工作站组件--更改已安装的组件--4、任何一个数据库由数据文件和事务日志文件组成数据文件:用于存放具体数据,扩展名为.mdf事务日志文件:用于存放用户对数据库的操作(如增加、删除、更新),扩展名为.ldf 说明:A、网络版区分于单机版的一个重要特点--事务B、事务示例:原子性--不可分割,如银行转帐一致性--数据的一致性,如意太得香肠病毒、银行的秘密帐号、word中输入“胡”字、Excel表格中的塞车游戏隔离性--事务之间具有隔离性永久性--事务对数据的操作永久生效 三、SQL命令1、新建查询:创建数据库:语法:create database 数据库名称on(数据文件)log on(事务日志文件)具体语法:create database 数据库名称on(name = '数据文件逻辑名',filename = '数据文件的路径及全称',size = 初始大小,maxsize = 最大容量, filegrowth = 递增量)log on(name = '事务日志文件逻辑名',filename = '事务日志文件的路径及全称',size = 初始大小,maxsize = 最大容量,filegrowth = 递增量)实例:创建数据库 dufeicreate database dufeion(name = 'dufei_data',filename = 'C:\SQL2005\dufei.mdf',size = 5mb,maxsize = 10mb,filegrowth = 5mb )log on(name = 'dufei_log',filename = 'C:\sql2005\dufei.ldf',size = 1mb,maxsize = 50mb,filegrowth = 5mb ) 2、最简单的语法:create database 数据库名称示例:创建数据库 db3 、db4、db5 create database db3 create database db4on(name = 'db4_date',filename = 'c:\sql2005\db4.mdf', ) create database db5on(name = 'db5_data',filename = 'c:\sql2005\db5.mdf',size = 3mb, --这里的大小要大于或等于model的大小 maxsize = 10mb,filegrowth = 5mb ) 说明:默认情况:一个数据文件、一个事务日志多个数据文件及多个事务日志文件好处:提高效率实例:创建一个数据库:dufei有两个数据文件两个事务日志文件图形界面:命令方式:说明:有多个数据文件时,主数据文件的扩展名为.mdf,次数据文件的扩展名为.ndfdrop database dufei --去掉文件实例:create database dufeion(name = 'dufei01_data',filename = 'c:\sql2005\dufei01.mdf',size = 5mb,maxsize = 100mb,filegrowth = 5mb ) ,(name = 'dufei02_data',filename = 'c:\sql2005\dufei02.ndf',size = 6mb,maxsize = 50mb,filegrowth = 5mb ) log on(name ='dufei03_log',filename='c:\sql2005\dufei03.ldf',size = 4mb,maxsize = 50mb,filegrowth = 5mb ),(name = 'dufei04_log',filename = 'c:\sql2005\dufei04.ldf',size = 4mb,maxsize = 50mb,filegrowth = 5mb )3、一个数据库可以由多个数据文件和多个事务日志文件:主数据文件 .mdf次数据文件 .ndf事务日志文件 .ldf4、默认的文件组:primary 主文件组,所有的数据文件默认都在此文件组5、实例:创建一个数据库,由三个文件组primary、fg1、fg2primary 文件组有一个数据文件fg1、fg2文件组有两个数据文件,一个事务日志文件使用命令:create database dufeion(name = 'dufei_data',filename = 'c:\sql2005\dufei.mdf',size = 10mb,maxsize = 100mb,filegrowth = 5mb ) ,filegroup fg1 --增加一个文件组(name = 'dufeifg1_1_data',filename = 'c:\sql2005\dufeifg1_1.ndf',size = 20mb,maxsize = 50mb,filegrowth = 10%

2010-04-13 0comments 235hotness 0likes mikebai Read all
dev

日志处理

--最好备份日志,以后可通过日志恢复数据。。。以下为日志处理方法一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.--*/--下面的所有库名都指你要处理的数据库的库名1.清空日志DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志:BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成 --收缩数据库DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。a.分离EXEC sp_detach_db @dbname = '库名'b.删除日志文件c.再附加EXEC sp_attach_single_file_db @dbname = '库名'

2010-04-13 0comments 271hotness 0likes mikebai Read all
dev

ECT 与 SET 对变量赋值的区别(存储过程)

SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT。对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们并没有注意,其实这两种方式还是有很多差别的。 SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值。当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。 下表列出 SET 与 SELECT 的区别。请特别注意红色部分。 set select 同时对多个变量同时赋值 不支持 支持 表达式返回多个值时 出错 将返回的最后一个值赋给变量 表达式未返回值 变量被赋null值 变量保持原值 下面以具体示例来说明问题: create table chinadba1(userid int ,addr varchar(128) )goinsert into chinadba1(userid,addr) values(1,'addr1')insert into chinadba1(userid,addr) values(2,'addr2')insert into chinadba1(userid,addr) values(3,'addr3')go表达式返回多个值时,使用 SET 赋值 declare @addr varchar(128)set @addr = (select addr from chinadba1)/*--出错信息为服务器: 消息 512,级别 16,状态 1,行 2子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。*/go表达式返回多个值时,使用 SELECT 赋值 declare @addr varchar(128)select @addr = addr from chinadba1print @addr --结果集中最后一个 addr 列的值--结果: addr3 go表达式未返回值时,使用 SET 赋值 declare @addr varchar(128)set @addr = '初始值'set @addr = (select addr from chinadba1 where userid = 4 )print @addr --null值 go表达式未返回值时,使用 SELECT 赋值 declare @addr varchar(128)set @addr = '初始值'select @addr = addr from chinadba1 where userid = 4print @addr --保持原值go 需要注意的是,SELECT 也可以将标量子查询的值赋给变量,如果标量子查询不返回值,则变量被置为 null 值。此时与 使用 SET 赋值是完全相同的对标量子查询的概念大家应该都觉得陌生,举个例子就能说明 declare @addr varchar(128)set @addr = '初始值'--select addr from chinadba1 where userid = 4 为标量子查询语句select @addr = (select addr from chinadba1 where userid = 4) print

2010-04-09 0comments 252hotness 0likes mikebai Read all
dev

[原创]SQL2005分页用存储过程

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo ALTER PROC [dbo].[Proc_Paging2005]    @SqlAllFields NVARCHAR(MAX) ,--所有字段    @SqlTablesAndWhere NVARCHAR(MAX) ,--from 之后的 order 之前的部分    @OrderFields NVARCHAR(MAX) ,--排序用字段    @PageSize INT ,--每页显示的数量    @PageIndex INT OUTPUT ,--要显示的页码,设置为OUTPUT用于判断请求页码的有效性    @RecordCount INT OUTPUT ,--总记录数    @PageCount INT OUTPUT --总页数AS     DECLARE @sql NVARCHAR(MAX)    SET @sql = 'SELECT @RecordCount = count(*) from ' + @SqlTablesAndWhere ;    EXEC sp_executesql @sql, N'@RecordCount int output', @RecordCount OUTPUT ;  --获得总页数    IF @RecordCount % @PageSize = 0         SET @PageCount = @RecordCount / @PageSize ;    ELSE         SET @PageCount = @RecordCount / @PageSize + 1 ;          --判断当前页码    SET @PageIndex = ISNULL(@PageIndex, 1) ;    IF @PageIndex > @PageCount         SET @PageIndex = @PageCount ;    IF @PageIndex < 1         SET @PageIndex = 1 ;     DECLARE @start_row_num AS INT ;    DECLARE @end_row_num AS INT ;    SET @start_row_num = ( ( @PageIndex - 1 ) * @PageSize ) + 1 ;    SET @end_row_num = ( @start_row_num + @PageSize ) - 1 ;     SET @sql = 'select * from (select row_number() over (' + @OrderFields        + ') as RowNumber,' + @SqlAllFields + ' from ' + @SqlTablesAndWhere        + ') as temptable where RowNumber between ' + STR(@start_row_num)        + ' and ' + STR(@end_row_num)     EXECUTE(@sql)    

2010-04-08 0comments 275hotness 0likes mikebai Read all
dev

获取影响行数和ID的存储过程

方法一:  1DECLARE @SQL NVARCHAR(256) 2DECLARE @ReturnID INT 3 4SET @SQL = 'SELECT [InfoID] FROM TM_TeachInfo WHERE [CourseID]=1 and [infosort]=1' 5 6EXEC(@SQL) 7 8SELECT @ReturnID = @@Rowcount

2010-04-08 0comments 241hotness 0likes mikebai Read all
dev

使用Visual Studio 2008 开发php

过年了,想趁的这段长假期间,抽空研究一下wordpress源码。以前编辑php代码,都是用editplus,editplus小巧,支持php高亮语法,编写小的php程序还是很不错,不过研究源码最需要是可以调试、跟踪源码,这点显然editplus就做不到了。在开发工具中,我用的最多的就是Visual Studio的,有没有办法可以用Visual Studio 来编译调试php呢?google了一下,嗯,发现了一个工具:vs.php,下载试用一下,感觉不错。vs.php 是Visual Studio的插件 分三个版本:VS.Php for Visual Studio 2008 、VS.Php for Visual Studio 2005和VS.Php Standalone Edition,前面两个版本安装Visual Studio 2008或 Visual Studio 2005的用户,最后一个版本适合没有安装Visual Studio的用户或安装了Visual Studio 2005以下版本的用户。在编写、调试php方面非常适合经常使用Visual Studio的程序员,很平滑的过渡到php开发。为什么这么说呢?1、强大php编辑器:支持php语法高亮是最基本的。自动创建文档注释php语法智能提示数组智能提示代码折叠、大纲查看代码块2、灵活编译、调试功能。支持php调试支持javascript调试支持dbg和xdebug两种调试引擎支持php4和php5两种运行环境3、程序结构基于项目和开发有关net的项目非常类似,基于项目的形式组织程序vs.php 调试php程序,会启动Apache web服务器,同时会把运行的IE进程临时添加到项目里来进行调试运行。 整个调试的过程,对net程序员来说,没有什么难度。对于已经开发好的php,可以按本来的目录形式组织成项目文件,以wordpress代码为例,在vs2008里步骤如下:1、菜单:文件+php project from existing code2、选择路径wordpress程序3、选择项目类型和运行环境4、选择项目包含的目录。添加完成后,如下图所示:不错吧,有兴趣下载来试试。试用版只有30天试用期,正式版要99.99美刀呢。下载的地址:http://www.jcxsoftware.com/download.php

2010-03-19 0comments 260hotness 0likes mikebai Read all
1…2021222324…26

Recent Posts

  • sqlserver go语句
  • c# winform适配高dpi
  • com.microsoft.sqlserver.jdbc.SQLServerException “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server建立安全连接
  • java -cp 用法介绍
  • HTML 容器元素

Recent Comments

No comments to show.

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang