喜气洋洋猪八戒不喝:asp.net的连接符&与+ 的问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 01:12:54
运行如下代码,结果正确:
<%@ Import Namespace="system.data" %>
<%@ Import Namespace="system.data.oledb" %>
<script language="vb" runat="server">
sub page_load(sender as object,e as eventargs)
dim mdb as string="gg.mdb"
dim conn as new oledbconnection("provider=Microsoft.Jet.OLEDB.4.0;Data source="&server.MapPath(mdb))
dim cmd as new oledbcommand("select * from web",conn)
conn.open()
dim dr as oledbdatareader=cmd.executereader()
m.text="<table width='90%' border='1'>"
do while dr.read()
m.text+="<tr>"
m.text+="<td>"&dr.item("id")&"</td>"
m.text+="<td>"&dr.item("name")&"</td>"
m.text+="<td>"&dr.item("grade")&"</td>"
m.text+="<td>"&dr.item("indate")&"</td>"
m.text+="</tr>"
loop
m.text+="<table>"
conn.close()
end sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<asp:Label ID="m" runat="server">d</asp:Label>
</body>
</html>

但把"+"连接符改为"&",如
<%@ Import Namespace="system.data" %>
<%@ Import Namespace="system.data.oledb" %>
<script language="vb" runat="server">
sub page_load(sender as object,e as eventargs)
dim mdb as string="gg.mdb"
dim conn as new oledbconnection("provider=Microsoft.Jet.OLEDB.4.0;Data source="&server.MapPath(mdb))
dim cmd as new oledbcommand("select * from web",conn)
conn.open()
dim dr as oledbdatareader=cmd.executereader()
m.text="<table width='90%' border='1'>"
do while dr.read()
m.text&="<tr>"
m.text&="<td>"&dr.item("id")&"</td>"
m.text&="<td>"&dr.item("name")&"</td>"
m.text&="<td>"&dr.item("grade")&"</td>"
m.text&="<td>"&dr.item("indate")&"</td>"
m.text&="</tr>"
loop
m.text&="<table>"
conn.close()
end sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<asp:Label ID="m" runat="server">d</asp:Label>
</body>
</html>
就出现如下错误了:
Compiler Error Message: BC30277: Type character '&' does not match declared data type 'String'

请问高手原由!

在vb中,"+"是运算操作符,而"&"才是连接符
也就是说+是进行了运算,而&只是简单的连接
简单的例子
在vb中
4+8=12
4&8=48,注意48是4和8连接起来的
在用于字符串的时候,+与&有类似的地方,他们都可以把字符连接起来,虽然方法不一样,但结果是一样的,要注意的是
m.text&="<td>"&dr.item("indate")&"</td>" 这种用法是运算操作符才有的,用&是不对的,你这样写就对了
m.text=m.text&"<td>"&dr.item("indate")&"</td>"
这样讲不知道你明白了没有