让我们的程序写得更加平易近人更加生动对我们的编程是大有益处的对我们的程序学习也能起到事半功倍的作用编程过程中遵守的不成文的标准对于我们和他人的交流和自己的再学习都是有益无害的毕竟有时我们写的程序不是只给自己看的也不是一时兴起不管以后 好的编码可使源代码的可读性强且意义清楚与其他语言约定相一致并且尽可能直观
错误(以外)的处理
程序健壮性最基本要求就是程序错误的处理与捕捉在ASPNET中错误的处理有和其他编程语言一样的机制可以使用Try…Catch… Finally等方式这一点和ASP相比具有较大的进步而且使用这些错误处理方法可以大大提高程序的可读性和程序调试速度在这几个优势结合的情况下我们更加应该注意这一点
字符串的处理
网页设计中字符串的处理几乎是最常见的了使用ASPNET以后字符串的处理比ASP的速度快而且在ASPNET中专门增加一个字符串处理类StringBulider使用这个类可以完成一些常见的字符串操作而最主要的使用StringBuilder可以大大提高字符串处理速度
在ASPNET中最常见的就是使用&来连接两个字符串
Dim myOutputString As String = My name isDim myInputString As String = Alex
myOutputString = myOutputString & myInputString
ResponseWrite(myoutputString)
现在我们来看看StringBuilder的使用在使用StringBuilder的时候我们对字符串可以做一些基本的操作比如AppendReplaceInsertRemove等现在我们来看具体举例
()StringBuilder中Append的使用
Append和其他语言的Append一样就是在字符串最后增加其他字符
http://wwwCodeHighlightercom/>Dim sb as StringBuilder = New StringBuilder()
sbappend( )
For i = To RowCount
sbAppend( )
For k = To ColCount
sbAppend( )
sbAppend( dtRows(i)Item(k DataRowVersionCurrent)toString())
sbAppend( )
Next
sbAppend( )
Next
sbAppend( )
Dim strOutput as String = sbToString()
lblCompanyText = strOutput
在以上的程序中用Append方法实现了一个表格的输出需要注意的一点是StringBulider必须首先使用ToString()方法将其转化为String类型才可以直接输出在以上的举例中我们看到的全部是Append一个直接的字符串其实这个方法有一个很方便的功能那就是可以直接 Append其他类型的变量比如可以直接Appemd一个Integer类型的数值当然我们输出以后自动转化为一个字符串
http://wwwCodeHighlightercom/>Sub Page_Load(Source As Object E As EventArgs)
Dim sb As SystemTextStringBuilder
Dim varother As Integer
varother=
sb =new SystemTextStringBuilder()
sbappend(可以Append其他类型)
sbappend(varother)
Responsewrite(sbtoString())
End Sub
()字符串中其他方法的使用
我们还可以使用其他方法我们来看看常见的
Insert方法可以在指定位置插入其他字符使用方法Insert(插入位置插入字符)
Remove方法可以在指定位置删除指定字数字符使用方法Remove(其实位置字符数)
Replace方法可以替换指定字符使用方法replace(被替换字符串替换字符串)
数据库链接Connection和DataReader的关闭
在使用ASP编程的时候我们就已经知道在使用数据库连接以后一定要将连接关闭然后设置为NoThing在AspNET中我们仍然需要这样使用不过在ASPNET中由于使用了ADONET所以在一些相关的处理方面实际还是有一些细微的区别而这些区别往往也就是我们设计的时候最需要注意的现在我们通过举例来看看在常见的ADONET操作中需要注意哪些问题
()举例一
Dim myConnection As SqlConnection =
new SqlConnection(ConfigurationSettingsAppSettings(DSN_pubs))Dim myCommand As SqlCommand =
new SqlCommand(Select pub_id pub_name From publishers myConnection)Dim myDataReader As SqlDataReader
Try
myConnectionOpen()
myDataReader = myCommandExecuteReader(CommandBehaviorCloseConnection)
DropDownListDataSource = myDataReader
DropDownListDataBind()
Catch myException As Exception
ResponseWrite(An error has occurred: & myExceptionToString())
Finally
If Not myDataReader Is Nothing Then
\\\关闭DataReader
myDataReaderClose()
End If
End Try
在以上的举例中我们注意到这里只关闭了DataReader并没有关闭Connection为什么呢?仔细观察以上的ExecuteReader方法原来设置了ExecuteReader参数当执行完ExecuteReader以后会自动关闭Connection所以这样设置以后就没有必要再手动关闭Connection了
()举例二
http://wwwCodeHighlightercom/>Dim myConnection As SqlConnection =
new SqlConnection(ConfigurationSettingsAppSettings(DSN_pubs))Dim myCommand As SqlCommand =
new SqlCommand(Select pub_id pub_name From publishers myConnection)Try
myConnectionOpen()
DropDownListDataSource = myCommandExecuteReader()
DropDownListDataBind()
Catch myException As Exception
ResponseWrite(An error has occurred: & myExceptionToString())
Finally
If Not myConnection Is Nothing AndAlso
((myConnectionState And ConnectionStateOpen) = ConnectionStateOpen) ThenmyConnectionClose()
End If
End Try
在以上的举例中我们发现居然没有关闭DataReader为什么呢?其实上面的代码中没有直接生成DataReader对象当然也就无从关闭了需要注意一点的是在关闭Connection之前程序首先判断Connection是否已经打开如果没有打开也就没必要关闭了