用户代码未处理 sqlexception 关键字 'file' 附近有语法错误。

时间:2021-07-14 17:01:58
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
 Label1.Text = Session("tname").ToString()
        Dim t As String
        t = Choose(Weekday(Now), "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")
        Label6.Text = "今天是:" & Now & Space(3) & t
        myconn = New SqlConnection("server=localhost;database=database;uid=sa;pwd=sa")
        myconn.Open()
        Dim strfn As String = Request.QueryString("filename")
        If Not String.IsNullOrEmpty(strfn) Then
            Dim sqlstr As String = "select * from file where filename='" + strfn + "'"
            Dim sda As New SqlDataAdapter(sqlstr, myconn)
            ds = New DataSet
             sda.Fill(ds, "file")  报错
            Dim drv As DataRowView
            drv = ds.Tables("file").DefaultView(0)
            Label2.Text = Convert.ToString(drv.Row("filename"))
            Label3.Text = Convert.ToString(drv.Row("filetime"))
            Label4.Text = Convert.ToString(drv.Row("sname"))
            TextBox1.Text = Convert.ToString(drv.Row("filecontent"))
        End If
        myconn.Close()
    End Sub

21 个解决方案

#1


你实际执行的sql语句对不对啊?打印出来看一下。

#2


两位真是精力大,一个半夜亮点,一个大清早6点,膜拜啊。。
楼主打断点跟下strfn的值

#3


引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
 Label1.Text = Session("tname").ToString()
        Dim t As String
        t = Choose(Weekday(Now), "星期日", "星期一", "星期二", "星期三", "星期四……


在sql中file,filename是关键字,改成
Dim sqlstr As String = "select * from [file] where [filename]='" + strfn + "'"

#4


应该是sql语句错误或者没有取到值吧,加断点一步步调试呗。

#5


奇怪 为什么我执行select * from file都会报错的。。。

#6


引用 3 楼 chinajiyong 的回复:
引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
Label1.Text = Session("tname").ToString()
Dim t As String
t = Choose(Weekday(Now), "星期日", "星期一", "星期二", "星期三"……


对了~不过为什么textbox1里的内容显示不出来

#7



Dim sqlstr As String = "select * from file where filename='" + strfn + "'"


=======>


Dim sqlstr As String = "select * from [file] where filename='" & strfn & "'"

#8


引用 6 楼 yadiannaha 的回复:
引用 3 楼 chinajiyong 的回复:

引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
Label1.Text = Session("tname").ToString()
Dim t As String
t = Choose(Weekday(Now),……

调试一下,看从数据库读取数据没有?TextBox没值,Label有没有显示??

#9


不对。已经有了

#10


引用 3 楼 chinajiyong 的回复:
引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
Label1.Text = Session("tname").ToString()
Dim t As String
t = Choose(Weekday(Now), "星期日", "星期一", "星期二", "星期三"……

VB连接字符不是&这个吗?

#11


还有一个问题哦~就是我是上传文本到数据库,然后定义的是filecontent,那我数据库里应该定义的是哪种类型,
textbox里不能插图片,是不是存在一个什么richtextbox的?

#12


引用 11 楼 yadiannaha 的回复:
还有一个问题哦~就是我是上传文本到数据库,然后定义的是filecontent,那我数据库里应该定义的是哪种类型,
textbox里不能插图片,是不是存在一个什么richtextbox的?

上传文本,文本比较大的话存路径(字符串),小的话,可以存二进制流
可以用richtextbox

#13


存路径要怎么存啊。。而且我怎么找不到richtextbox

#14


引用 13 楼 yadiannaha 的回复:
存路径要怎么存啊。。而且我怎么找不到richtextbox

路径不就是个字符串,就是你文本的在本地的路径啊。winform才有richtextbox

#15


恩~我本来打算上传到服务器,然后把路径存到数据库的。。。
可是我发现我不知道该怎么实现查看和下载功能。。。

#16


引用 15 楼 yadiannaha 的回复:
恩~我本来打算上传到服务器,然后把路径存到数据库的。。。
可是我发现我不知道该怎么实现查看和下载功能。。。

你要查看不就是从读取读取出路径,然后用根据路径去本地找你需要的图片

#17


恩~意思我懂。。。但是我不知道具体怎么写。。。

#18


引用 17 楼 yadiannaha 的回复:
恩~意思我懂。。。但是我不知道具体怎么写。。。

从数据库读出路径你会把,路径有了,假如你要显示到pictureBox就这句
 localphotopath = 从数据库读出路径;
 this.pb_PatientImage.Image = Image.FromFile(localphotopath);
至于下载你自己看看下载相关把,一两句话也说不清楚,我又不知道你是ftp上传还是用socket??

#19


我也猜是3楼所说的原因,建议你把file全部替换成 file2 试试;

另外,楼主这样写sql语句很不安全哟!~

#20


啊~~怎么个不安全了~求赐教

#21


需要把request进来的内容参数化,不然很容易被注入攻击。
如何参数化,你百度下。。。。

#1


你实际执行的sql语句对不对啊?打印出来看一下。

#2


两位真是精力大,一个半夜亮点,一个大清早6点,膜拜啊。。
楼主打断点跟下strfn的值

#3


引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
 Label1.Text = Session("tname").ToString()
        Dim t As String
        t = Choose(Weekday(Now), "星期日", "星期一", "星期二", "星期三", "星期四……


在sql中file,filename是关键字,改成
Dim sqlstr As String = "select * from [file] where [filename]='" + strfn + "'"

#4


应该是sql语句错误或者没有取到值吧,加断点一步步调试呗。

#5


奇怪 为什么我执行select * from file都会报错的。。。

#6


引用 3 楼 chinajiyong 的回复:
引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
Label1.Text = Session("tname").ToString()
Dim t As String
t = Choose(Weekday(Now), "星期日", "星期一", "星期二", "星期三"……


对了~不过为什么textbox1里的内容显示不出来

#7



Dim sqlstr As String = "select * from file where filename='" + strfn + "'"


=======>


Dim sqlstr As String = "select * from [file] where filename='" & strfn & "'"

#8


引用 6 楼 yadiannaha 的回复:
引用 3 楼 chinajiyong 的回复:

引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
Label1.Text = Session("tname").ToString()
Dim t As String
t = Choose(Weekday(Now),……

调试一下,看从数据库读取数据没有?TextBox没值,Label有没有显示??

#9


不对。已经有了

#10


引用 3 楼 chinajiyong 的回复:
引用楼主 yadiannaha 的回复:
我想通过gridview查看详细的信息,但是显示如上错误,我另外一个页面同样的代码,却是对的,为什么这个会报错?如下是我的代码:
Label1.Text = Session("tname").ToString()
Dim t As String
t = Choose(Weekday(Now), "星期日", "星期一", "星期二", "星期三"……

VB连接字符不是&这个吗?

#11


还有一个问题哦~就是我是上传文本到数据库,然后定义的是filecontent,那我数据库里应该定义的是哪种类型,
textbox里不能插图片,是不是存在一个什么richtextbox的?

#12


引用 11 楼 yadiannaha 的回复:
还有一个问题哦~就是我是上传文本到数据库,然后定义的是filecontent,那我数据库里应该定义的是哪种类型,
textbox里不能插图片,是不是存在一个什么richtextbox的?

上传文本,文本比较大的话存路径(字符串),小的话,可以存二进制流
可以用richtextbox

#13


存路径要怎么存啊。。而且我怎么找不到richtextbox

#14


引用 13 楼 yadiannaha 的回复:
存路径要怎么存啊。。而且我怎么找不到richtextbox

路径不就是个字符串,就是你文本的在本地的路径啊。winform才有richtextbox

#15


恩~我本来打算上传到服务器,然后把路径存到数据库的。。。
可是我发现我不知道该怎么实现查看和下载功能。。。

#16


引用 15 楼 yadiannaha 的回复:
恩~我本来打算上传到服务器,然后把路径存到数据库的。。。
可是我发现我不知道该怎么实现查看和下载功能。。。

你要查看不就是从读取读取出路径,然后用根据路径去本地找你需要的图片

#17


恩~意思我懂。。。但是我不知道具体怎么写。。。

#18


引用 17 楼 yadiannaha 的回复:
恩~意思我懂。。。但是我不知道具体怎么写。。。

从数据库读出路径你会把,路径有了,假如你要显示到pictureBox就这句
 localphotopath = 从数据库读出路径;
 this.pb_PatientImage.Image = Image.FromFile(localphotopath);
至于下载你自己看看下载相关把,一两句话也说不清楚,我又不知道你是ftp上传还是用socket??

#19


我也猜是3楼所说的原因,建议你把file全部替换成 file2 试试;

另外,楼主这样写sql语句很不安全哟!~

#20


啊~~怎么个不安全了~求赐教

#21


需要把request进来的内容参数化,不然很容易被注入攻击。
如何参数化,你百度下。。。。