C#

C#开发点滴:常用函数,处理方法

<strong>1. 打开新的窗口并传送参数:</strong>

传送参数:

response.write(‘window.open(“*.aspx?id=’+this.DropDownList1.SelectIndex+’&id1=’+…+'”)’)

接收参数:

string a = Request.QueryString(‘id’);

string b = Request.QueryString(‘id1’);

<strong>2.为按钮添加对话框</strong>

传送参数:

response.write(‘window.open(“*.aspx?id=’+this.DropDownList1.SelectIndex+’&id1=’+…+'”)’)

接收参数:

string a = Request.QueryString(‘id’);

string b = Request.QueryString(‘id1’);

<strong>2.为按钮添加对话框</strong>

Button1.Attributes.Add(‘onclick’,’return confirm(“确认?”)’);

button.attributes.add(‘onclick’,’if(confirm(“are you sure…?”)){return true;}else{return false;}’)

<strong>3.删除表格选定记录</strong>

int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];

string deleteCmd = ‘Delete from Employee where emp_id = ‘ + intEmpID.ToString()

<strong>4.删除表格记录警告</strong>

private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)

{

switch(e.Item.ItemType)

{

case ListItemType.Item :

case ListItemType.AlternatingItem :

case ListItemType.EditItem:

TableCell myTableCell;

myTableCell = e.Item.Cells[14];

LinkButton myDeleteButton ;

myDeleteButton = (LinkButton)myTableCell.Controls[0];

myDeleteButton.Attributes.Add(‘onclick’,’return confirm(“您是否确定要删除这条信息”);’);

break;

default:

break;

}

}

<strong>5.点击表格行链接另一页</strong>

private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

{

//点击表格打开

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

e.Item.Attributes.Add(‘onclick’,’window.open(“Default.aspx?id=’ + e.Item.Cells[0].Text + ‘”);’);

}

双击表格连接到另一页

在itemDataBind事件中

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

{

string orderItemID =e.item.cells[1].Text;

e.item.Attributes.Add(‘ondblclick’, ‘location.href=”../ShippedGrid.aspx?id=’ + orderItemID + ‘”‘);

}

双击表格打开新一页

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

{

string orderItemID =e.item.cells[1].Text;

e.item.Attributes.Add(‘ondblclick’, ‘open(“../ShippedGrid.aspx?id=’ + orderItemID + ‘”)’);

}

★特别注意:【?id=】 处不能为 【?id =】

<strong>6.表格超连接列传递参数</strong>

” & name=”” />

<b>7.表格点击改变颜色

</b>if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)

{

e.Item.Attributes.Add(‘onclick’,’this.style.backgroundColor=”#99cc00″;this.style.color=”buttontext”;this.style.cursor=”default”;’);

}

写在DataGrid的_ItemDataBound里

if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)

{

e.Item.Attributes.Add(‘onmouseover’,’this.style.backgroundColor=”#99cc00″;this.style.color=”buttontext”;this.style.cursor=”default”;’);

e.Item.Attributes.Add(‘onmouseout’,’this.style.backgroundColor=””;this.style.color=””;’);

}

<strong>8.关于日期格式</strong>

日期格式设定

DataFormatString='{0:yyyy-MM-dd}’

我觉得应该在itembound事件中

e.items.cell[‘你的列’].text=DateTime.Parse(e.items.cell[‘你的列’].text.ToString(‘yyyy-MM-dd’))

<b>9.获取错误信息并到指定页面

</b>不要使用Response.Redirect,而应该使用Server.Transfer

e.g

// in global.asax

protected void Application_Error(Object sender, EventArgs e) {

if (Server.GetLastError() is HttpUnhandledException)

Server.Transfer(‘MyErrorPage.aspx’);

//其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)

}

Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理

<strong>10.清空Cookie</strong>

Cookie.Expires=[DateTime];

Response.Cookies(‘UserName’).Expires = 0

<strong>11.自定义异常处理</strong>

//自定义异常处理类

using System;

using System.Diagnostics;

namespace MyAppException

{

///

/// 从系统异常类ApplicationException继承的应用程序异常处理类。

/// 自动将异常内容记录到Windows NT/2000的应用程序日志

///

public class AppException:System.ApplicationException

{

public AppException()

{

if (ApplicationConfiguration.EventLogEnabled)

LogEvent(‘出现一个未知错误。’);

}

public AppException(string message)

{

LogEvent(message);

}

public AppException(string message,Exception innerException)

{

LogEvent(message);

if (innerException != null)

{

LogEvent(innerException.Message);

}

}

//日志记录类

using System;

using System.Configuration;

using System.Diagnostics;

using System.IO;

using System.Text;

using System.Threading;

namespace MyEventLog

{

///

/// 事件日志记录类,提供事件日志记录支持

///

/// 定义了4个日志记录方法 (error, warning, info, trace)

///

///

public class ApplicationLog

{

///

/// 将错误信息记录到Win2000/NT事件日志中

///

需要记录的文本信息

///

public static void WriteError(String message)

{

WriteLog(TraceLevel.Error, message);

}

///

/// 将警告信息记录到Win2000/NT事件日志中

///

需要记录的文本信息

///

public static void WriteWarning(String message)

{

WriteLog(TraceLevel.Warning, message);

}

///

/// 将提示信息记录到Win2000/NT事件日志中

///

需要记录的文本信息

///

public static void WriteInfo(String message)

{

WriteLog(TraceLevel.Info, message);

}

///

/// 将跟踪信息记录到Win2000/NT事件日志中

///

需要记录的文本信息

///

public static void WriteTrace(String message)

{

WriteLog(TraceLevel.Verbose, message);

}

///

/// 格式化记录到事件日志的文本信息格式

///

需要格式化的异常对象

///

异常信息标题字符串.

///

///

格式后的异常信息字符串,包括异常内容和跟踪堆栈.

///

///

public static String FormatException(Exception ex, String catchInfo)

{

StringBuilder strBuilder = new StringBuilder();

if (catchInfo != String.Empty)

{

strBuilder.Append(catchInfo).Append(‘
‘);

}

strBuilder.Append(ex.Message).Append(‘
‘).Append(ex.StackTrace);

return strBuilder.ToString();

}

///

/// 实际事件日志写入方法

///

要记录信息的级别(error,warning,info,trace).

///

要记录的文本.

///

private static void WriteLog(TraceLevel level, String messageText)

{

try

{

EventLogEntryType LogEntryType;

switch (level)

{

case TraceLevel.Error:

LogEntryType = EventLogEntryType.Error;

break;

case TraceLevel.Warning:

LogEntryType = EventLogEntryType.Warning;

break;

case TraceLevel.Info:

LogEntryType = EventLogEntryType.Information;

break;

case TraceLevel.Verbose:

LogEntryType = EventLogEntryType.SuccessAudit;

break;

default:

LogEntryType = EventLogEntryType.SuccessAudit;

break;

}

EventLog eventLog = new EventLog(‘Application’, ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );

//写入事件日志

eventLog.WriteEntry(messageText, LogEntryType);

}

catch {} //忽略任何异常

}

} //class ApplicationLog

}

<strong>12.Panel 横向滚动,纵向自动扩展</strong>

<strong>13.回车转换成Tab</strong>

if(event.keyCode==13 && event.srcElement.type!=”button” && event.srcElement.type!=”submit” && event.srcElement.type!=”reset” && event.srcElement.type!=””&& event.srcElement.type!=”textarea”);

event.keyCode=9;

onkeydown=’if(event.keyCode==13) event.keyCode=9′

<a href=”http://dotnet.aspx.cc/exam/enter2tab.aspx” target=”_blank”><span style=”color: #339933;”>http://dotnet.aspx.cc/exam/enter2tab.aspx</span></a>

<strong>14.DataGrid超级连接列</strong>

DataNavigateUrlField=’字段名’ DataNavigateUrlFormatString='<a href=”http://xx/inc/delete.aspx?ID={0″ target=”_blank”><span style=”color: #339933;”>http://xx/inc/delete.aspx?ID={0</span></a>}’

<strong>15.DataGrid行随鼠标变色</strong>

private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

{

if (e.Item.ItemType!=ListItemType.Header)

{

e.Item.Attributes.Add( ‘onmouseout’,’this.style.backgroundColor=”+e.Item.Style[‘BACKGROUND-COLOR’]+”’);

e.Item.Attributes.Add( ‘onmouseover’,’this.style.backgroundColor=”+ ‘#EFF3F7’+”’);

}

}

<strong>16.模板列</strong>

” runat=’server’ width=’80%’ id=’lblColumn’ />

后台代码

protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)

{

//改变列的选定,实现全选或全不选。

CheckBox chkExport ;

if( CheckAll.Checked)

{

foreach(DataGridItem oDataGridItem in MyDataGrid.Items)

{

chkExport = (CheckBox)oDataGridItem.FindControl(‘chkExport’);

chkExport.Checked = true;

}

}

else

{

foreach(DataGridItem oDataGridItem in MyDataGrid.Items)

{

chkExport = (CheckBox)oDataGridItem.FindControl(‘chkExport’);

chkExport.Checked = false;

}

}

}

<strong>17.数字格式化</strong>

【的结果是500.0000,怎样格式化为500.00?】

int i=123456;

string s=i.ToString(‘###,###.00’);

<strong>18.日期格式化</strong>

【aspx页面内:

显示为: 2004-8-11 19:44:28

我只想要:2004-8-11 】

应该如何改?

【格式化日期】

取出来,一般是object

((DateTime)objectFromDB).ToString(‘yyyy-MM-dd’);

【日期的验证表达式】

A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]

^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|([1-2][0-9])))))|(d{2}(([02468][1235679])|([13579][01345789]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(s(((0?[1-9])|(1[0-2])):([0-5][0-9])((s)|(:([0-5][0-9])s))([AM|PM|am|pm]{2,2})))?$

B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]

^d{4}[-/s]?((((0[13578])|(1[02]))[-/s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[-/s]?(([0-2][0-9])|(30)))|(02[-/s]?[0-2][0-9]))$

【大小写转换】

HttpUtility.HtmlEncode(string);

HttpUtility.HtmlDecode(string)

<strong>19.如何设定全局变量</strong>

Global.asax中

Application_Start()事件中

添加Application[属性名] = xxx;

就是你的全局变量

<strong>20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口?</strong>

HyperLinkColumn有个属性Target,将器值设置成’_blank’即可.(Target=’_blank’)

【ASPNETMENU】点击菜单项弹出新窗口

在你的menuData.xml文件的菜单项中加入URLTarget=’_blank’

如:

……

最好将你的aspnetmenu升级到1.2版

<strong>21.委托讨论</strong>

<a href=”http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191″ target=”_blank”><span style=”color: #339933;”>http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191</span></a>

<a href=”http://dev.csdn.net/develop/article/22/22951.shtm” target=”_blank”><span style=”color: #339933;”>http://dev.csdn.net/develop/article/22/22951.shtm</span></a>

<strong>22.读取DataGrid控件TextBox值</strong>

foreach(DataGrid dgi in yourDataGrid.Items)

{

TextBox tb = (TextBox)dgi.FindControl(‘yourTextBoxId’);

tb.Text….

}

<strong>23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能?</strong>

〖思归〗

onkeyup=’javascript:DoCal()’

/>

onkeyup=’javascript:DoCal()’

/>

” />

function DoCal()

{

var e = event.srcElement;

var row = e.parentNode.parentNode;

var txts = row.all.tags(‘INPUT’);

if (!txts.length || txts.length

if (isNaN(q) || isNaN(p))

return;

q = parseInt(q);

p = parseFloat(p);

txts[txts.length-1].value = (q * p).toFixed(2);

}

<strong>24.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了</strong>

page_load

page.smartNavigation=true

<strong>25.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?</strong>

private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)

{

for(int i=0;i

}

}

<strong>26.对话框</strong>

private static string ScriptBegin = ”;

private static string ScriptEnd = ”;

public static void ConfirmMessageBox(string PageTarget,string Content)

{

string ConfirmContent=’var retValue=window.confirm(“‘+Content+'”);’+’if(retValue){window.location=”‘+PageTarget+'”;}’;

ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;

Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;

ParameterPage.RegisterStartupScript(‘confirm’,ConfirmContent);

//Response.Write(strScript);

}

<span style=”font-size: 10px;”><span style=”font-family: ‘Times;”>----------------------------------------</span></span>

<span style=”font-size: 10px;”><span style=”font-family: ‘Times;”>27. </span></span>将时间格式化:string aa=DateTime.Now.ToString(‘yyyy年MM月dd日’);

<span style=”font-size: 12px;”><span style=”font-family: ‘Times;”> </span></span>1.1 取当前年月日时分秒

currentTime=System.DateTime.Now;

1.2 取当前年

int 年= DateTime.Now.Year;

1.3 取当前月

int 月= DateTime.Now.Month;

1.4 取当前日

int 日= DateTime.Now.Day;

1.5 取当前时

int 时= DateTime.Now.Hour;

1.6 取当前分

int 分= DateTime.Now.Minute;

1.7 取当前秒

int 秒= DateTime.Now.Second;

1.8 取当前毫秒

int 毫秒= DateTime.Now.Millisecond;

28.自定义分页代码:

<span style=”font-size: 12px;”><span style=”font-family: ‘Times;”> </span></span>先定义变量 :public static int pageCount; //总页面数

public static int curPageIndex=1; //当前页面

下一页:

if(DataGrid1.CurrentPageIndex

{

DataGrid1.CurrentPageIndex += 1;

curPageIndex+=1;

}

bind(); // DataGrid1数据绑定函数

上一页:

if(DataGrid1.CurrentPageIndex >0)

{

DataGrid1.CurrentPageIndex += 1;

curPageIndex-=1;

}

bind(); // DataGrid1数据绑定函数

直接页面跳转:

int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值

if(a

{

this.DataGrid1.CurrentPageIndex=a;

}

bind();

<span style=”font-size: 12px;”><span style=”font-family: ‘Times;”>29</span></span>.DataGrid使用:

3.1添加删除确认:

private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

{

foreach(DataGridItem di in this.DataGrid1.Items)

{

if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem)

{

((LinkButton)di.Cells[8].Controls[0]).Attributes.Add(‘onclick’,’return confirm(“确认删除此项吗?”);’);

}

}

}

3.2样式交替:

ListItemType itemType = e.Item.ItemType;

if (itemType == ListItemType.Item )

{

e.Item.Attributes[‘onmouseout’] = ‘javascript:this.style.backgroundColor=”#FFFFFF”;’;

e.Item.Attributes[‘onmouseover’] = ‘javascript:this.style.backgroundColor=”#d9ece1″;cursor=”hand”;’ ;

}

else if( itemType == ListItemType.AlternatingItem)

{

e.Item.Attributes[‘onmouseout’] = ‘javascript:this.style.backgroundColor=”#a0d7c4″;’;

e.Item.Attributes[‘onmouseover’] = ‘javascript:this.style.backgroundColor=”#d9ece1″;cursor=”hand”;’ ;

}

3.3添加一个编号列:

DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //执行sql返回的DataTable

DataColumn dc=dt.Columns.Add(‘number’,System.Type.GetType(‘System.String’));

for(int i=0;i

{

dt.Rows<i>[‘number’]=(i+1).ToString();

}

DataGrid1.DataSource=dt;

DataGrid1.DataBind();

3.4 DataGrid1中添加一个CheckBox,页面中添加一个全选框

private void CheckBox2_CheckedChanged(object sender, System.EventArgs e)

{

foreach(DataGridItem thisitem in DataGrid1.Items)

{

((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked;

}

}

将当前页面中DataGrid1显示的数据全部删除

foreach(DataGridItem thisitem in DataGrid1.Items)

{

if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked)

{

string strloginid= DataGrid1.DataKeys[thisitem.ItemIndex].ToString();

Del (strloginid); //删除函数

}

}

30.当文件在不同目录下,需要获取数据库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化)

在Application_Start中添加以下代码:

Application[‘ConnStr’]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.AppSettings[‘ConnStr’].ToString();

<span style=”font-size: 12px;”><span style=”font-family: ‘Times;”>31</span></span>. 变量.ToString()

字符型转换 转为字符串

12345.ToString(‘n’); //生成 12,345.00

12345.ToString(‘C’); //生成 ¥12,345.00

12345.ToString(‘e’); //生成 1.234500e+004

12345.ToString(‘f4’); //生成 12345.0000

12345.ToString(‘x’); //生成 3039 (16进制)

12345.ToString(‘p’); //生成 1,234,500.00%

32、变量.Substring(参数1,参数2);

截取字串的一部分,参数1为左起始位数,参数2为截取几位。

如:string s1 = str.Substring(0,2);

<span style=”font-family: ‘Times;”>33</span>.在自己的网站上登陆其他网站:<span style=”font-family: ‘Times;”>(</span>如果你的页面是通过嵌套方式的话,因为一个页面只能有一个<span style=”font-family: ‘Times;”>FORM</span>,这时可以导向另外一个页面再提交登陆信息)

function gook(pws)

{

frm.submit();

}

//–>

<span style=”font-family: ‘Times;”><span style=”font-size: 12px;”> http://220.194.55.68:6080/login.php?retid=7259</span></span> ‘ method=’post’>

文本框的名称必须是你要登陆的网页上的名称,如果源码不行可以用<span style=”font-family: ‘Times;”>vsniffer </span>看看。

下面是获取用户输入的登陆信息的代码:

string name;

name=Request.QueryString[‘EmailName’];

try

{

int a=name.IndexOf(‘@’,0,name.Length);

f_user.Value=name.Substring(0,a);

f_domain.Value=name.Substring(a+1,name.Length-(a+1));

f_pass.Value=Request.QueryString[‘Psw’];

}

catch

{

Script.Alert(‘错误的邮箱!’);

Server.Transfer(‘index.aspx’);

}

c#.net常用的小函数

<b>1、DateTime 数字型

</b>System.DateTime currentTime=new System.DateTime();

1.1 取当前年月日时分秒

currentTime=System.DateTime.Now;

1.2 取当前年

int 年=currentTime.Year;

1.3 取当前月

int 月=currentTime.Month;

1.4 取当前日

int 日=currentTime.Day;

1.5 取当前时

int 时=currentTime.Hour;

1.6 取当前分

int 分=currentTime.Minute;

1.7 取当前秒

int 秒=currentTime.Second;

1.8 取当前毫秒

int 毫秒=currentTime.Millisecond;

<strong>(变量可用中文)</strong>

1.9 取中文日期显示——年月日时分

string strY=currentTime.ToString(‘f’); //不显示秒

1.10 取中文日期显示_年月

string strYM=currentTime.ToString(‘y’);

1.11 取中文日期显示_月日

string strMD=currentTime.ToString(‘m’);

1.12 取当前年月日,格式为:2003-9-23

string strYMD=currentTime.ToString(‘d’);

1.13 取当前时分,格式为:14:24

string strT=currentTime.ToString(‘t’);

<strong>2、Int32.Parse(变量) Int32.Parse(‘常量’)</strong>

字符型转换 转为32位数字型

<strong>3、 变量.ToString() </strong>

字符型转换 转为字符串

12345.ToString(‘n’); //生成 12,345.00

12345.ToString(‘C’); //生成 ¥12,345.00

12345.ToString(‘e’); //生成 1.234500e+004

12345.ToString(‘f4’); //生成 12345.0000

12345.ToString(‘x’); //生成 3039 (16进制)

12345.ToString(‘p’); //生成 1,234,500.00%

<strong>4、变量.Length 数字型</strong>

取字串长度:

如: string str=’中国’;

int Len = str.Length ; //Len是自定义变量, str是求测的字串的变量名

<strong>5、System.Text.Encoding.Default.GetBytes(变量)</strong>

字码转换 转为比特码

如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);

然后可得到比特长度:

len = bytStr.Length;

<strong>6、System.Text.StringBuilder(”)</strong>

字符串相加,(+号是不是也一样?)

如:System.Text.StringBuilder sb = new System.Text.StringBuilder(”);

sb.Append(‘中华’);

sb.Append(‘人民’);

sb.Append(‘共和国’);

<strong>7、变量.Substring(参数1,参数2);</strong>

截取字串的一部分,参数1为左起始位数,参数2为截取几位。

如:string s1 = str.Substring(0,2);

<strong>8、String user_IP=Request.ServerVariables[‘REMOTE_ADDR’].ToString();</strong>

取远程用户IP地址

<strong>9、穿过代理服务器取远程用户真实IP地址:</strong>

if(Request.ServerVariables[‘HTTP_VIA’]!=null){

string user_IP=Request.ServerVariables[‘HTTP_X_FORWARDED_FOR’].ToString();

}else{

string user_IP=Request.ServerVariables[‘REMOTE_ADDR’].ToString();

}

<strong>10、 Session[‘变量’]; </strong>

存取Session值;

如,赋值: Session[‘username’]=’小布什’;

取值: Object objName=Session[‘username’];

String strName=objName.ToString();

清空: Session.RemoveAll();

<strong>11、String str=Request.QueryString[‘变量’]; </strong>

用超链接传送变量。

如在任一页中建超链接:点击

在Edit.aspx页中取值:String str=Request.QueryString[‘fdid’];

<strong>12、DOC对象.CreateElement(‘新建节点名’);</strong>

创建XML文档新节点

<strong>13、父节点.AppendChild(子节点);</strong>

将新建的子节点加到XML文档父节点下

<strong>14、 父节点.RemoveChild(节点);</strong>

删除节点

<strong>15、Response </strong>

Response.Write(‘字串’);

Response.Write(变量);

向页面输出。

Response.Redirect(‘URL地址’);

跳转到URL指定的页面

<strong>16、char.IsWhiteSpce(字串变量,位数)——逻辑型 </strong>

查指定位置是否空字符;

如:

string str=’中国 人民’;

Response.Write(char.IsWhiteSpace(str,2)); //结果为:True, 第一个字符是0位,2是第三个字符。

<strong>17、char.IsPunctuation(“字符”) –逻辑型</strong>

查字符是否是标点符号

如:Response.Write(char.IsPunctuation(“A”)); //返回:False

<strong>18、(int)”字符”</strong>

把字符转为数字,查代码点,注意是单引号。

如:

Response.Write((int)”中”); //结果为中字的代码:20013

<strong>19、(char)代码</strong>

把数字转为字符,查代码代表的字符。

如:

Response.Write((char)22269); //返回“国”字。

<strong>20、 Trim()</strong>

清除字串前后空格

<strong>21 、字串变量.Replace(‘子字串’,’替换为’)</strong>

字串替换

如:

string str=’中国’;

str=str.Replace(‘国’,’央’); //将国字换为央字

Response.Write(str); //输出结果为“中央”

再如:(这个非常实用)

string str=’这是脚本’;

str=str.Replace(”); //将左尖括号替换为 与 (或换为脚本”

如果不替换,将不显示,如果是一段脚本,将运行;而替换后,脚本将不运行。

这段代码的价值在于:你可以让一个文本中的所有HTML标签失效,全部显示出来,保护你的具有交互性的站点。

具体实现:将你的表单提交按钮脚本加上下面代码:

string strSubmit=label1.Text; //label1是你让用户提交数据的控件ID。

strSubmit=strSubmit.Replace(”);

然后保存或输出strSubmit。

用此方法还可以简单实现UBB代码。

<strong>22、Math.Max(i,j)</strong>

取i与j中的最大值

如 int x=Math.Max(5,10); // x将取值 10

<strong>23、字串对比一般都用: if(str1==str2){ } , 但还有别的方法: </strong>

(1)、

string str1; str2

//语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如:

if(str1.EndsWith(str2)){ Response.Write(‘字串str1是以’+str2+’结束的’); }

(2)、

//语法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

(3)、

//语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

<strong>24、IndexOf() 、LastIndexOf()</strong>

查找字串中指定字符或字串首次(最后一次)出现的位置,返回索引值,如:

str1.IndexOf(‘字’); //查找“字”在str1中的索引值(位置)

str1.IndexOf(‘字串’);//查找“字串”的第一个字符在str1中的索引值(位置)

str1.IndexOf(‘字串’,3,2);//从str1第4个字符起,查找2个字符,查找“字串”的第一个字符在str1中的索引值(位置)

<strong>25、Insert()</strong>

在字串中指定索引位插入指定字符。如:

str1.Insert(1,’字’);在str1的第二个字符处插入“字”,如果str1=’中国’,插入后为“中字国”;

<strong>26、PadLeft()、PadRight()</strong>

在字串左(或右)加空格或指定char字符,使字串达到指定长度,如:

<strong>27、Remove() </strong>

从指定位置开始删除指定数的字符

字串对比一般都用: if(str1==str2){ } , 但还有别的方法:

1、

string str1; str2

//语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如:

if(str1.EndsWith(str2)){ Response.Write(‘字串str1是以’+str2+’结束的’); }

2、

//语法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

3、

//语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

<strong>28、IndexOf() </strong>

查找字串中指定字符或字串首次出现的位置,返首索引值,如:

str1.IndexOf(‘字’); //查找“字”在str1中的索引值(位置)

str1.IndexOf(‘字串’);//查找“字串”的第一个字符在str1中的索引值(位置)

str1.IndexOf(‘字串’,3,2);//从str1第4个字符起,查找2个字符,查找“字串”的第一个字符在str1中的索引值(位置)

String 和StringBuilder 的区别

<strong>System.String</strong> 类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错。但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。

而使用System.Text命名空间下面的<strong>StringBuilder</strong>类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。如果想要编写将连续操作依次连接起来的单个语句,这将很方便。

1 . <span style=”color:#ff0000″>String 和 string 区别<b>

</b></span>

就像int实际上是System.Int32一样,string是映射了System.String FCL类型的关键字,是System.String的别名。使用上没有任何不同,因为编译器会将string编译为System.String。

2. <span style=”color: #ff0000;”>判断string为空时,s == string.Empty ; s == ”; s.Length == 0; 区别</span>

通常情况下,这三种方式是等价的。性能稍有不同。

按照性能从高到低的顺序是:

s.Length == 0 优于 s == string.Empty 优于 s == ”

编译后可知。

—————————————————————–

> str.Length == 0

ldloc.0

callvirt instance int32 [mscorlib]System.String::get_Length()

> str.== string.empty

ldloc.0

ldsfld string [mscorlib]System.String::Empty

callvirt instance bool [mscorlib]System.String::Equals(string)

> str == ”

ldloc.0

ldstr ”

call bool [mscorlib]System.String::op_Equality(string,string)

分类: C#

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部