第 1 行: '=' 附近有语法错误。求大家

jiao28 2005-09-29 09:00:20
http://localhost/456/NetIdle.aspx?dir=E:\sourcecode\456\Upload\123
用ASP.NET开发的网络硬盘创建新目录的时候的URL 这样的URL是不是很不安全?


---------------------------------------------------------------------------------
此段代码的意思是将售楼信息从数据库提出,然后点"详细介绍"(现在是用字段ID代替)察看全部信息,现在的问题是提取信息没问题,但是点详细介绍时就会产生这个错误,

“/xx”应用程序中的服务器错误。
--------------------------------------------------------------------------------

第 1 行: '=' 附近有语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '=' 附近有语法错误。

源错误:


行 36: cn.Open()
行 37:
行 38:---------->Dim dr As SqlDataReader = cmd1.ExecuteReader()<--------说的就是这一行
行 39: dr.Read()
行 40: theLabel.Text = dr("ID")


源文件: E:\aspado\xx\xx.aspx 行: 38

数据库文件: 我不知道这样建设的数据库是否可行?是不是字段的长度不对?请老师指点?

列名 数据类型 长度
1.ID int 4 自动编号
2.wz(位置) text 16 例:三道街一小学对面宿楼五门301室
3.hx(户型) text 16 例:三室二厅
4.lc(楼层) int 4 例:6
5.jzsj(建筑时间) int 4 例:98
6.xj(新旧) char 10 表示此楼是二手还是新楼 例:新
7.lxr(联系人) text 16 例:王大明
8.lxdh(联系电话) float 8 例:1333333333333
9.sc(售出) bit 1 标明此楼是否已售 例:0表示已经售出
10.djrq(登记时间) datetime 8 例:2005-2-1
11.xsrq(销售时间) datatime 8 例:2005-4-6
12.xxjs(详细介绍) text 16 例:此楼供暖好,(应该记录很多)


这是源代码:

<%@ Page Language="VB" debug="true" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.IO" %>

<html><head>
<title>Employees</title>
<style>
hr {height:2px;color:black;}
.StdText {font-family:verdana;font-size:9pt;}
.StdTextBox {font-family:verdana;font-size:9pt;border:solid 1px black;filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true');}
</style>

<SCRIPT runat="server">
Public Sub Page_Load(sender As Object, e As EventArgs)

If Not IsPostBack
lblURL.Text = Request.Url.ToString() + "<hr>"
End If
End Sub

Public Sub OnSearch(sender As Object, e As EventArgs)

Dim ds As DataSet = New DataSet()

Dim sConn As String = "server=(local);uid=sa;Initial Catalog=fcxx;"
Dim sText As String = "SELECT * FROM xxlist"
sText += "WHERE ID =" + tbEmpID.Text
Dim cmd1 As SqlDataAdapter = New SqlDataAdapter(sText, sConn)
cmd1.Fill(ds, "EmpTable")

DataList1.DataSource = ds.Tables("EmpTable").DefaultView
DataList1.DataBind()

theLabel.Visible = True
theLabel.Text = "Click to read more."
End Sub

Public Sub HandleSelection(sender As Object, e As EventArgs)

Dim nEmpID as Integer = CType(DataList1.DataKeys(DataList1.SelectedIndex), Integer)

Dim sConn As String = "server=(local);uid=sa;Initial Catalog=Northwind;"
Dim cn As SqlConnection = New SqlConnection(sConn)

Dim sText As String = "SELECT * FROM Employees "
sText += "WHERE employeeid = " + nEmpID.ToString()
Dim cmd As SqlCommand = New SqlCommand(sText, cn)
cn.Open()

Dim dr As SqlDataReader = cmd.ExecuteReader()
dr.Read()
theLabel.Text = "<b>" + dr("ID") + "</b><br>"
Dim dt As DateTime = Convert.ToDateTime(dr("wz"))
theLabel.Text += " from " + dr("lxdh") + "<hr>"
theLabel.Text += "<i>" + dr("lxr") + "</i>"

btnUnselect.Visible = True
dr.Close()
cn.Close()
End Sub

Public Sub RemoveSelection(sender As Object, e As EventArgs)

DataList1.SelectedIndex = -1
theLabel.Text = "Click to read more."
btnUnselect.Visible = False
End Sub

</SCRIPT>

<body bgcolor="ivory" style="font-family:arial;font-size:9pt">
<h2>Employees</h2>

<!-- ASP.NET Form -->
<form runat="server">

<asp:Label runat="server" cssclass="StdText" font-bold="true">Current path: </asp:label>
<asp:Label runat="server" id="lblURL" cssclass="StdText" style="color:blue"></asp:label>

<table border="0">

<tr>
<td><asp:Label runat="server" cssclass="StdText" font-bold="true">EmployeeID</asp:label></td>
<td><asp:textbox runat="server" id="tbEmpID" cssclass="StdTextBox" width="100px">1</asp:textbox></td>
<td><asp:LinkButton runat="server" cssclass="StdText" Text="Search" onclick="OnSearch" ></asp:LinkButton></td>
</tr>
</table>

<hr>
<br>

<table><tr><td valign="top">

<asp:DataList runat="server" id="DataList1" DataKeyField="id"
OnSelectedIndexChanged="HandleSelection">

<SelectedItemStyle BackColor="lightblue" />
<HeaderTemplate>
<h3>Northwind's Employees</h3>
</HeaderTemplate>

<ItemTemplate>
<asp:linkbutton runat="server" commandname="select"
Text='<%# CType(Container.DataItem, DataRowView)("wz").ToString() + " - " + _
CType(Container.DataItem, DataRowView)("lc") + ", " + _
CType(Container.DataItem, DataRowView)("sj") %> ' />

</ItemTemplate>

<FooterTemplate>
<hr>
</FooterTemplate>

</asp:DataList>

<asp:linkbutton runat="server" id="btnUnselect"
Visible="false"
OnClick="RemoveSelection" Text="Unselect" />
</td>
<td width=100px></td>
<td width=300px valign="top" >

<asp:label runat="server" id="theLabel" Visible="false"></asp:label>
<br>

</td></tr></table>

<!-- End of ASP.NET page -->
</form>

</body>
</html>
...全文
133 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
eyych 2005-09-29
  • 打赏
  • 举报
回复
sql语句错误,或数据类型的问题。
先Response.Write输出sql语句查看一下。。。
代码蜗牛sky 2005-09-29
  • 打赏
  • 举报
回复
你可以对该url编码的啊
swordragon 2005-09-29
  • 打赏
  • 举报
回复
1、http://localhost/456/NetIdle.aspx?dir=E:\sourcecode\456\Upload\123
这样的url很不安全。

2、在使用程序执行sql之前,最好是先自己用sql去数据库查询一下,看看是否有明显的错误。
sukaru 2005-09-29
  • 打赏
  • 举报
回复
Dim sText As String = "SELECT * FROM xxlist"
sText += " WHERE ID =" + tbEmpID.Text //where前少了空格.
码视野 2005-09-29
  • 打赏
  • 举报
回复
sql语句不正确
用throw new ApplicationException("sql语句");
输出sql语句看看那里出错!!!
egonzou 2005-09-29
  • 打赏
  • 举报
回复
一般是sql语句写得不正确或都某些值没取得
luckyprg 2005-09-29
  • 打赏
  • 举报
回复
不知道是不是这里的问题
Dim sText As String = "SELECT * FROM xxlist"
sText += "WHERE ID =" + tbEmpID.Text

很明显WHERE前少了个空格。而且如果ID不是int型的话,应该在tbEmpID.Text的两边加上'。
pgy8288 2005-09-29
  • 打赏
  • 举报
回复
代码太长啦
贴出关键部分就差不多了
很少有人愿意看这么长的代码的

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧