Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

var s = document.getElementById(“txtUserName”);
alert ( s.value ); alert(s.id);
直接操作。
onclick = “this.style.backgroundColor=’#FF0000′


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,鼠标事件

  • 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey??? (event可直接用,如document一样)
  • ?如: document.onkeydown=function () {alert(event.keyCode );}
  • 鼠标位置 event.x event.y?????????????????? 注:FF下时,event只能在事件发生的现场使用,在调用函数时传入event
  • 根据鼠标获得元素:
  • ? document.elementFromPoint(event.x,event.y).tagName==”TD
  • ? document.elementFromPoint(event.x,event.y).appendChild(ms)??
  • 交换表的行 TableID.moveRow(2,1)
  • 获取选中内容 document.selection.createRange().duplicate().text

事件如delphi一样,可执行点击按键操作


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?一、数据类型
?? 在js只有五种数据类型,null, undefined, String, Number,Object

????? undefined:未定义,我们也可称之为不存在,typeof(undefined)=undefined.

  null:为空。undefined是不存在,而null是存在,但却无。typeof(null)=object,但null又不是object,且undefined==null

  boolean:true or false。

  Number: 数字如:var s= new Number(20);??? alert(s.toString(2)); //10100? 接收时不是用Number a = new Number(20),而是用var 这样s就是一个Number类型,其属性有:MAX_VALUE 可表示的最大的数。MIN_VALUE 可表示的最小的数。 NaN 非数字值。NEGATIVE_INFINITY 负无穷大,溢出时返回该值。POSITIVE_INFINITY 正无穷大,溢出时返回该值。 方法有:toString? 可以接受一个从2到36的数字,然后把我们的Number转换为相应的进制数。

????? 注:NaN和Infinity是两个特殊之数,NaN代表一个无法用数值来表示的数字,而Infinity代表一个无穷大的数字,相对的,-Infinify则代表负无穷大。在此有两点特殊的地方:NaN!=NaN,Infinity/Infinity=NaN。

  String:字符串,Javascript中没有字符的概念,字符串是表示文本的最小单位。在字符串中,有这样的两个函数,分别是charAt(index)和charCodeAt(index)分别返回对应索引的字符和字符Unicode编码。在我们平时,可能经常会使用下标的方式访问,如s[10],可是这并不是ECMAScript的标准,应该尽量避免。

二,js建立类对象

?1,成员变量权限分为私有与公有。私有指用var建立的成员 ,公有指用this建立的对象???

var obj = function () {??? var a = 1;??? this.b = 2;??? this.c = 5;??? this.fun = function () {? ?? this.c = a+this.b;??? }};
var o = new obj(); o.fun();????????? alert(o.b);?? //2 ???????? alert(o.a);? //不可访问结果为undefined

2,为类动态增加变量,函数—prototype

??? var obj = function () {? this.c = 5;};
var o = new obj(); alert(o.c);? //5
obj.prototype.tt = -3? obj.prototype.setValue = function(){?? this.c = -1; } //可直接操作类成员
o.setValue(); //设置后直接调用

alert(o.c);
alert(o.tt);

利用prototype有个好处,定义的东西多个实例也是共用一个。不然直接定义方法,则每一个实例的方法是不一样的,存在不同的地址中


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,数据转换

  • 转换为字符型:String();?例:String(678)的结果为“678”??
  • 2.转换为数值型:Number();?例:Number(“678”)的结果为678??
  • 3.转换为布尔型:Boolean();?例:Boolean(“aaa”)的结果为true

2, 一个值中提取另一种类型的值

  • 提取字符串中的整数:parseInt();?例:parseInt(“123zhang”)的结果为123
  • 提取字符串中的浮点数:parseFloat();?例:parseFloat(“0.55zhang”)的结果为0.55?

3, 运行字符串指定的函数 – EVAL

  1. 执行用字符串表示的一段javascript代码:eval();?例:zhang=eval(“1+1”)的结果zhang=2?

4, 变量指定可指定为方法, //js方法形参不用var 直接指定一个名字即可如:function doit( username ){}
?
var?myfunc?=?function?()
????????{
????????????alert(
hello);
????????};
?js没有类,但可用{} 来创建,并可指定方法。如: var s = {}; ? s.info = myfunc;??????????? s.info();
JavaScript里的代码如方法等也是一种数据,同样可以被任意赋值和修改!var speaker = {text: “Hello World”, say: function(){alert(this.text)}};? 用{} 创建了一个对象,拥有text属性与say方法。
注:没有对象实例的概念,对象即是实例。
对象创建采用的是json方法。 JavaScript Object Notation(缩写JSON)的形式,翻译为中文就是“JavaScript对象表示法”。

或者用:var car = new Object(); car.colur = ‘red’;

5, js 创建对象的方法

6, 查看网页源代码
. <input type=button value=”/查看网页源代码
onclick=”window.location = “view-source:”+ “http://www.pconline.com.cn“”>???????????? //view-source:www.baidu.com

7,让页面可编辑:
document.body.contentEditable=’true’;document.designMode=’on’;

8,ENTER键可以让光标移到下一个输入框
<input onkeydown=”if(event.keyCode==13)event.keyCode=9″>

9, 事件执行后执行另一个事件
<ice:inputText onkeydown=”return testKey(event)” id=”proff” style=”width: 81px” value=”#{Logon.imageValue}” />

<script language=”javascript”>
function testKey(event){
if(event.keyCode==13){
document.getElementById(“logon:logonButton”).click();
return false;
}
}
</script>

10, <noscript> 标签用于定义假如脚本没有执行时的替代文本。这个标签被用于以下情况:如果浏览器能够识别 <script> 标签,但是不支持其中的脚本,那么这些浏览器将显示出 <noscript> 标签内部的文本。不过,如果浏览器支持 <script> 内的脚本,那么浏览器将忽略 <noscript> 标签。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?1,输出:

<html>
<body>

<script type=”text/javascript”>
document.write(“<h1>Hello World!</h1>”);
</script>

</body>
</html>

2, 一些浏览器不支持js, 要在script中加上<!– –>当不支持时就屏蔽掉。
<script type=”text/javascript”>
<!–
document.write(“Hello World!”);
//–>??????????????????? //是js的注释,防止js执行 –>
</script>

3,注释用:/**/ 或//???? 引用外部js文件,
?

4,字符串相加,用”+” ;一个字符串与一数据相加结果为一字符串, 转义字符用”\” 如截断”document.write(“Hello \
World!”);

5,因头部加载在body之前,故最好js函数在head中定义,以确保在调用之前js函数已经加载完毕。

6, if , switch , for , while 同java ,遍历数组可用 for ( i in mycars), 异常处理:
try ? { ? throw “Err2”; ? } catch(err) ? { ? //Handle errors here ? }

7, 事件有:onFocus, onBlur and onChange,onSubmit,onMouseOver,onMouseOut;

8, JS 大小写敏感

9, 字符串方法: length, toUpperCase(),indexOf; 某字符第一次出现的位置,若无,返回-1

10, 日期操作: var myDate=new Date();? myDate.setDate(myDate.getDate()+5); today;

11, 数组:var myCars=new Array(“Saab”,”Volvo”,”BMW”);

12,boolean 值: var myBoolean=new Boolean(false);

13,数学函数: Math.PI, Math.sqrt(16), Math.LOG2E,Math.round(4.7) = 5, Math.random()

14,正则表达式:同java类似,var patt1=new RegExp(“e”); document.write(patt1.test(“The best things in life are free”)); 测试是否含有“e”,若存在,返回true

15, 创建cookie: var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=+ “mycookiee”+exdate.toGMTString());

16, with 当得到一个父容器的引用此,利用with,其内的元素就不必加下引容器的名称。
function validate_form(thisform)
{
with (thisform)
? {
? ??? userName = “123”;
? }
}


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

setInterval 每隔多少执行一次
setTimeout 在多少之后执行一次,只执行一次。!

?<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head>
<title></title>
</head>
<body>
<script language=”javascript” type=”text/javascript”>
function showDate()
{
document.getElementById(“div1”).innerHTML=Date();
}

// 每间隔 1 秒后调用如上方法
setInterval(“showState()”,1000);
</script>
<div id=”div1″></div>
</body>
</html>

1,时间间隔可以用 setInterval 命令来创建并用 clearInterval 命令来终止。setInterval 所用的参数有两种格式。在第一种格式中,你传递给 setInterval 的参数可以是一个函数名,一段时间上的间隔以及一些传递给前面函数的相关参数。当 setInterval 运行时它会依照规定的时间间隔依次将列出的参数传递给指定的函数,直到你调用 clearInterval 将其终止。

2,setTimeout方法不会每隔n秒钟就执行一次 showTime函数,它是在每次调用setTimeout后过n秒钟再去执行showTime函数。这意味着如果showTime函数的主体部分需要2 秒钟执行完,那么整个函数则要n+2秒钟才执行一次。而setInterval却没有被自己所调用的函数所束缚,它只是简单地每隔一定时间就重复执行一次那个函数。如果要求在每隔一个固定的时间间隔后就精确地执行某动作,那么最好使用setInterval,而如果不想由于连续调用产生互相干扰的问题,尤其是每次函数的调用需要繁重的计算以及很长的处理时间,那么最好使用setTimeout。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,window.open(‘CancelCause.aspx’);
2,window.open(‘CancelCause.aspx’,’child’);
3,window.open(‘CancelCause.aspx’,’child’,’height=800, width=400, top=0, left=400′):
4,window.open(‘CancelCause.aspx’,’child’,’height=800, width=400, top=0, left=400,toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no’)

当指定了第三个参数的时候,默认toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no,即:3等同4
window.open 弹出新窗口的命令;
  ’page.html’ 弹出窗口的文件名, 为子窗口句柄,而open返回值为子窗口的window对象,注意区别
  ’child’ 弹出窗口的名字(不是文件名),非必须,可用空”代替;
  height=100 窗口高度;
  width=400 窗口宽度;
  top=0 窗口距离屏幕上方的象素值;
  left=0 窗口距离屏幕左侧的象素值;
  toolbar=no 是否显示工具栏,yes为显示;
  menubar,scrollbars 表示菜单栏和滚动栏。
  resizable=no 是否允许改变窗口大小,yes为允许;
  location=no 是否显示地址栏,yes为允许;
  status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
????? fullscreen=”yes” 最大化
????? alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
  alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
  depended | yes/no | 是否和父窗口同时关闭
  directories | yes/no | Nav2和3的目录栏是否可见
  hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
  innerHeight | pixel value | 窗口中文档的像素高度
  innerWidth | pixel value | 窗口中文档的像素宽度
  outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
  outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
  screenX | pixel value | 窗口距屏幕左边界的像素长度
  screenY | pixel value | 窗口距屏幕上边界的像素长度
  z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

上边四种情况的open函数返回值都是新打开的窗口的句柄,可用来操作新找开的窗口。
如:OpenWindow=window.open(“”, “newwin”, “height=250, width=250,toolbar=no ,scrollbars=”+scroll+”,menubar=no”);
????? OpenWindow.document.write(“<TITLE>例子</TITLE>”)


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用。 opener 属性非常有用,创建的窗口可以引用创建它的窗口所定义的属性和函数。可利用其来操作别一个窗口,前提是当前窗口是在另一个窗口的链接或open打开的。opener就代表父窗口的引用。
如:1.html:
?? input name=”” id = “father” type=”text” />
<a href=”2.html” target=”_blank”>2.html</a>
????? 2, <input name=”” type=”text” onKeyUp=”opener.document.getElementById(‘father’).value=this.value;” />
则当打开2.html之后,在2.html的input中输入文本,1.html中的input文本内容也会随之变化。

opener用来子窗口控制父窗口,父窗口要想控制子窗口的话,var myWin = window.open(‘new.html’);用myWin保存打开的子窗口的womdpw进行控制。myWin是一个window对象


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?window是JavaScript中最大的对象,它描述的是一个浏览器窗口。
window 包括screen,document, location …
screen 屏幕对象 反映了当前用户的屏幕设置。
document 文档对象 描述当前窗口或指定窗口对象的文档。
location 对象,连接
location对象? ?

  • href 整个URL字符串.
  • protocol 含有URL第一部分的字符串,如http:
  • host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/
  • hostname 包含URL中主机名的字符串.如http://www.cenpok.net
  • port 包含URL中可能存在的端口号字符串.
  • pathname URL中”/”以后的部分.如~list/index.htm
  • hash “#”号(CGI参数)之后的字符串.
  • search “?”号(CGI参数)之后的字符串. //得到URL传来的参数

function getUrlPara(paraName){?

var URLParams = new Object();
var aParams = document.location.search.substr(1).split(“&”);
if ( aParams == “” || aParams == undefined ){
??? return 0;
}
for (i=0; i<aParams.length; i++)
{
???? var aParam = aParams[i].split(“=”);
???? URLParams[aParam[0]] = aParam[1];
}
? return URLParams[paraName];

}


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

document 文档对象 描述当前窗口或指定窗口对象的文档。它包含了文档从<head>到</body>的内容。
dom对象指的就是位于文档内的对象

1,

属性

cookie 关于 cookie 请参看“使用框架和 Cookies”一章。
lastModified
当前文档的最后修改日期,是一个 Date 对象。
referrer
如果当前文档是通过点击连接打开的,则 referrer 返回原来的 URL。
title
指<head>标记里用<title>…</title>定义的文字。在 Netscape 里本属性不接受赋值。
fgColor 指<body>标记的 text 属性所表示的文本颜色。
bgColor 指<body>标记的 bgcolor 属性所表示的背景颜色。
linkColor
指<body>标记的 link 属性所表示的连接颜色。
alinkColor
指<body>标记的 alink 属性所表示的活动连接颜色。
vlinkColor
指<body>标记的 vlink 属性所表示的已访问连接颜色。

2, document.getElementsByTagName(“input”) ? ? ? TagName:指类型,

???? document.getElementsById(“input”) ?

?? ?document.getElementsByName(“input”)


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

screen 屏幕对象 反映了当前用户的屏幕设置。

属性

width 返回屏幕的宽度(像素数)。
height
返回屏幕的高度。
availWidth 返回屏幕的可用宽度(除去了一些不自动隐藏的类似任务栏的东西所占用的宽度)。
availHeight 返回屏幕的可用高度。
colorDepth 返回当前颜色设置所用的位数 – 1:黑白;8:256色;16:增强色;24/32:真彩色


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,他是JavaScript中最大的对象,它描述的是一个浏览器窗口。一般要引用它的属性和方法时,不需要用“window.xxx”这种形式,而直接使用“xxx”。一个框架页面也是一个窗口。如:window.document,一般直接用document.
?
?2, self 指窗口本身,它返回的对象跟 window 对象是一模一样的。最常用的是“self.close()”,放在<a>标记中:“<a href=”javascript:self.close()”>关闭窗口</a>”。 window.等同于close()? self.close()

?3,判断浏览器:window.navigator.userAgent.indexOf(“Firefox”)>=1
?? 注:navigator 浏览器对象 反映了当前使用的浏览器信息,
?? ?appCodeName
返回浏览器的“码名”(?),流行的 IE 和 NN 都返回 ‘Mozilla’。
?? ?appName
返回浏览器名。IE 返回 ‘Microsoft Internet Explorer’,NN 返回 ‘Netscape’。
?? ?appVersion
返回浏览器版本,包括了大版本号、小版本号、语言、操作平台等信息。
?? ?platform
返回浏览器的操作平台,对于 Windows 9x 上的浏览器,返回 ‘Win32’(大小写可能有差异)。
?? ?userAgent
返回以上全部信息。例如,IE5.01 返回 ‘Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)’。
?? ?javaEnabled() 返回一个布尔值,代表当前浏览器允许不允许 Java。
?
4,打开窗口 window.open? ,后退: window.history.go(-1);

5,

  • alert() 用法:alert(<字符串>);弹出一个只包含“确定”按钮的对话框,显示<字符串>的内容,整个文档的读取、Script 的运行都会暂停,直到用户按下“确定”。
  • confirm() 用法:confirm(<字符串>);弹出一个包含“确定”和“取消”按钮的对话框,显示<字符串>的内容,要求用户做出选择,整个文档的读取、Script 的运行都会暂停。如果用户按下“确定”,则返回 true 值,如果按下“取消”,则返回 false 值。
  • prompt() 用法:prompt(<字符串>[, <初始值>]);弹出一个包含“确认”“取消”和一个文本框的对话框,显示<字符串>的内容,要求用户在文本框输入一些数据,整个文档的读取、Script 的运行都会暂停。如果用户按下“确认”,则返回文本框里已有的内容,如果用户按下“取消”,则返回 null 值。如果指定<初始值>,则文本框里会有默认值。

6 Window窗口对象有如下事件:
window.onload;发生在文档全部下载完毕的时候。全部下载完毕意味着不但 HTML 文件,而且包含的图片,插件,控件,小程序等全部内容都下载完毕。本事件是 window 的事件,但是在 HTML 中指定事件处理程序的时候,我们是把它写在<body>标记中的。
window.onunload;发生在用户退出文档(或者关闭窗口,或者到另一个页面去)的时候。与 onload 一样,要写在 HTML 中就写到<body>标记里。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

地址栏中不仅仅只支持http协议,还有:
https;
file; 打开本地文件
ftp;
view-source; 查看指定连接的源码
javascript: 执行js代码
mailto:goodasong@gmail.com? 调用本地邮箱发邮件mailto:goodasong@gmail.com


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1, 用作URL的JavaScript代码前要增加javascript:以说明使用的是JavaScript协议, 可直接在地址栏中输出javascript:alert(‘123’);来执行js命令

2, 利用浏览器打开网页之后,就可直接在地址栏中输入命令,进行资料的整合
?? 如:javascript:alert(“链接数: “+document.links.length);????????? //统计当前页面的连接数

页面打开,代表它已经存储在本地,当然可以按照自己的想法进行修改,这也是Firebug页面修改的原理所在


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

一、在网页文件的<script></script>标签对中直接编写JavaScript脚本代码; <script></script>标签对的位置并不是固定的,可以出现在<head></head>或<body></body>的任何位置。在一个HTML文档中可以有多段JavaScript代码。每段JavaScript代码可以相互访问,这与将所有代码放入同一对<script></script>之间的效果是一致的。在页面加载时此代码会自动执行!, 若放在function中,在调用时才会执行。 <input type=button value=click onclick=”alert(new Date());”>

? 二、将JavaScript脚本程序代码放置在一个单独的文件中,在网页文件中引用这个脚本程序。 ,这个文件以js为扩展名,其被称作为JavaScript脚本文件,在页面引入:<script src=”firstScript.js” language=”javascript”/>
三、将脚本程序代码作为某个元素的事件属性值或超链接的href属性。??? <a href=”javascript:alert(new Date());”>javascript</a>单击这个超链接,浏览器就会执行javascript:后面的脚本程序代码。

?????? JavaScript扩展了标准的HTML,为HTML标签增加了各种事件属性,比如,对Button而言,可以设置一个新的属性onclick,onclick的属性值就是一段JavaScript程序代码,当单击这个按钮后,onclick属性中的JavaScript代码就会被浏览器解释执行。如下所示:

?????? <input type=button value=click onclick=”alert(new Date());”>

注意:用作URL的JavaScript代码前要增加javascript:,以说明使用的是JavaScript协议,但事件属性中的JavaScript程序代码前则不用增加javascript:进行说明。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
1,ado.net微软在.NET中创建分布式和数据共享应用程序的开发接口,它就是一组处理数据的类。

 2, 连接数据库的两种状态 -- 有连接,无连接。
    (1)有连接:用户得到的数据始终与数据源连接,直到应用程序结束。因数据是实时的,故可用连接状态来读取数据,以保持数据的最新。     
            好处:得到的数据总是最新的。同步问题易于解决,实时性高
            缺点:必须保持持续的网络连接,扩展性差。
    (2)无连接:从数据源得到数据后,这部分数据存储到内在中,可以进行数据的编辑,与更改。
            好处:可以在任何时间操作,不独占连接。
            缺点:数据不是实时的,要解决同步问题。

 3,有连接的操作:主要用来数据的读取。连接数据步骤:
       (1)声明SqlConnecton对象,并指定连接字符串属性
       (2)声明SqlCommand对象,指定sql命令及SqlConnection
       (3)SqlCommnad执行方法,返回数据集
       (4)关闭数据集,关闭Connection

        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = "Data Source=192.168.16.55;Initial Catalog=BRM;persist security info=False;user id=BRM;password=BRM2009;min pool size=1;max pool size=100;" ;
        conn.Open();
        SqlCommand command = new SqlCommand();
        command.Connection = conn;
        command.CommandText = "SELECT * FROM bdOrder";
        SqlDataReader  dr = command.ExecuteReader();
        GridView1.DataSource = dr;
        GridView1.DataBind();
        dr.Close();
        conn.Close();  //注若在GridView获取数据之前Close关闭,则将收不到数据。但在无连接进可在之前关闭,因为数据已存入在内存中。

       注:利用SqlConnection, SqlCommand, SqlDataReader默认是支持SqlServer的,若想支持MySql,项目中要引入具体的dll文件 如引入MySql.Data.dll, 在程序中using MySql.Data.MySqlClient;利用MySqlConnection,MySqlCommand,MySqlDataReader即可。
SqlCommand 常用方法:
    (1)更新删除操作:ExecuteNonQuery 对连接执行 Transact-SQL 语句并返回受影响的行数, int类型              返回数据集操作: ExecuteReader 已重载。 将 CommandText 发送到 Connection 并生成一个 SqlDataReader。 返回一个数据操作: ExecuteScalar 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。 
         返回一个XML: ExecuteXmlReader 将 CommandText 发送到 Connection 并生成一个 XmlReader 对象。 
        
  (2) 传参
             1),直接在CommandText写参数;如:command.CommandText = "SELECT * FROM bdOrder WHERE id>" + id;2),利用SqlParameter传参,防止Sql注入
             command.CommandText = "SELECT * FROM mdCustomerType WHERE ORDERBY orderby";
                          SqlParameter sp = new SqlParameter( "@orderby" ,8);  
                          command.Parameters.Add(sp);
        注:不同的数据库用的符号是不同的,SqlServer用 “@”, 而MySql 则用 “? 

4, 无连接的操作, 区别在于执行数据操作时用的是SqlDataAdapter,可利用SqlCommand构造Sql语句,并传参。最后是SqlDataAdapter来执行 返回的结果用Fill方法填充DataSet或DataTable
        (1)string ConnectionString = "Data Source=192.168.16.55;Initial Catalog=BRM;persist security info=False;user id=BRM;password=BRM2009;min pool size=1;max pool size=100;";
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = ConnectionString;
        conn.Open();
        SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM bmdCustomer",conn);
        DataSet ds = new DataSet();
        sda.Fill( ds );
        conn.Close();             //conn可提前关闭
        GridView1.DataSource = NoConnection(conn);
        GridView1.DataBind();
//操作也可用: 
       SqlDataAdapter sda = new SqlDataAdapter();
        SqlCommand command = new SqlCommand();
        command.Connection = conn;
        command.CommandText = "SELECT * FROM mdCustomerType WHERE ORDERBY >@orderby";
        SqlParameter sp = new SqlParameter("@orderby", 10);
        command.Parameters.Add(sp);
        sda.SelectCommand = command;   //这样就可传参。
       其实SqlDataAdapter就是SqlCommand的适配器,主要内容由SqlCommand完成构建,它只是负责执行。

     (2)SqlDataAdapter 类似于SqlCommand 的Exec方法
               查询:  sda.SelectCommand;
               插入:  sda.InsertCommand;
               更新:  sda.UpdateCommand;
               删除:  sda.DeleteCommand;

       
5,执行存储过程
      指定SqlCommand的CommandType, CommandText即可
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandType = CommandType.StoredProcedure;   //默认执行的是Sql语句
        cmd.CommandText = "bmdCustomer_sel";                      //存储过程名称, 默认是Sql语句
        SqlParameter[] storedParameters = {
                                          new SqlParameter( "@TranType", "ID" ),
                                          new SqlParameter( "@ID", "277" )
                                          };
        foreach (SqlParameter sp in storedParameters) {
            cmd.Parameters.Add( sp );
        }

        SqlDataReader dr = cmd.ExecuteReader();

注:CommandType指定类型:(1)Text :默认,CommandText为Sql命令。
                                            (2)TableDirect CommandText为表的名称。 (3)StoredProcedure CommandText为存储过程的名称。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,J2EE支持多平台,单一语言;.Net支持多语言,单一平台

2,页面数据提交,.net一般写在按纽的onClick事件中,而java要配置from的action

3,Visual Studio比较Eclipse

  • Visual Studio的工具窗口占用了过多的空间,没有Eclipse简洁
  • Eclipse编辑器右侧有个特殊区域代表了整个代码文件,断点、错误、警告、书签都会在这里标识出来,不论代码有多长,点击一下就可以定位,非常的方便。
  • 在Visual Studio里面定位代码,要么用鼠标滚轮上下翻动直到找到内容,要么从成员列表的组合框里选择,不论哪一种,都没有Eclipse来得简洁方便。
  • 重构功能比较初级
  • Visual Studio支持代码重构,Eclipse也支持,但是你比较一下两者的菜单就知道,它们对重构的支持程度完全不是同一个级别的
  • 缺少智能化的快速修复
  • Eclipse不仅找出编译错误,还能够为许多种类型的错误提供修复选项。
  • Eclipse是完全免安装的,Visual Studio要重启两次继续阅读