ASP数据库执行语句:类型不匹配
新人学ASP.遇难了.遇难了..唉...我鳖了二天.没弄明白它.大家帮我看看吧.是啥地方有错.目前错误提示是===============================...
新人学ASP.遇难了.遇难了..
唉...我鳖了二天.没弄明白它.
大家帮我看看吧.是啥地方有错.
目前错误提示是
======================================
Microsoft VBScript 运行时错误 '800a000d'
类型不匹配: '[string: "yingwen"]'
======================================
我想实现[cat_id]传过来的[yingwen]写入到数据库[Gq_article]的[cat_id]中
我现在不确定[Gq_article]的[cat_id]是什么数据库类型.(最好指教如何查询)
代码如下
=======================================
<td class="TableRow1"><select name="cat_id">
<option value="yingwen"><%=rs("cat_name")%></option>
=======================================
sql="select * from Gq_article where id="&cint(request.Form("id"))
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3
catid=request.form("cat_id")
title=trim(replace(request.form("art_title"),"'",""))
artisbest=request.form("isbest")
content=rtrim(replace(request.form("content"),"",""))
content=trim(replace(content," "," "))
if catid<1 then
founderr=true
Response.Write("<script language=javascript>alert('你必须选择文章的分类!');history.back(1);</script>")
else
rs("cat_id")=catid
end if
=======================================
注: 试过的方法都不行.
将if catid<1 then替换成if catid<"1" then 行不通
会不会是我的数据库设计时存在问题?
我不能确认数据库类型是否是文本或是字符型.
估计是数字型...可我要如何转换?将数据库里的cat_id字段类型转换成字符或是文本?
在线等 展开
唉...我鳖了二天.没弄明白它.
大家帮我看看吧.是啥地方有错.
目前错误提示是
======================================
Microsoft VBScript 运行时错误 '800a000d'
类型不匹配: '[string: "yingwen"]'
======================================
我想实现[cat_id]传过来的[yingwen]写入到数据库[Gq_article]的[cat_id]中
我现在不确定[Gq_article]的[cat_id]是什么数据库类型.(最好指教如何查询)
代码如下
=======================================
<td class="TableRow1"><select name="cat_id">
<option value="yingwen"><%=rs("cat_name")%></option>
=======================================
sql="select * from Gq_article where id="&cint(request.Form("id"))
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3
catid=request.form("cat_id")
title=trim(replace(request.form("art_title"),"'",""))
artisbest=request.form("isbest")
content=rtrim(replace(request.form("content"),"",""))
content=trim(replace(content," "," "))
if catid<1 then
founderr=true
Response.Write("<script language=javascript>alert('你必须选择文章的分类!');history.back(1);</script>")
else
rs("cat_id")=catid
end if
=======================================
注: 试过的方法都不行.
将if catid<1 then替换成if catid<"1" then 行不通
会不会是我的数据库设计时存在问题?
我不能确认数据库类型是否是文本或是字符型.
估计是数字型...可我要如何转换?将数据库里的cat_id字段类型转换成字符或是文本?
在线等 展开
展开全部
如果没有数据库参看工具,你可以写一段代码,通过SQL语句来修改字段类型,语法是:ALTER TABLE 表名 ALTER COLUMN 字段名 新类型
如果原来字段是数字型,是可以转换成字符型的,通用的字符型类型有两种:char(长度)和varchar(长度),建议你使用后者,因为前者在当实际数据长度小于类型长度时后面补空格。
参考代码:ALTER TABLE Gq_article ALTER COLUMN cat_id varchar(40)
如果不允许cat_id字段有NULL值,可以在后面加NOT NULL来限制
如果原来字段是数字型,是可以转换成字符型的,通用的字符型类型有两种:char(长度)和varchar(长度),建议你使用后者,因为前者在当实际数据长度小于类型长度时后面补空格。
参考代码:ALTER TABLE Gq_article ALTER COLUMN cat_id varchar(40)
如果不允许cat_id字段有NULL值,可以在后面加NOT NULL来限制
展开全部
根据代码命名,看起来像是整形(数字型)。
我觉得,你要把
<option value="yingwen"><%=rs("cat_name")%></option>
修改为
<option value="<%=rs("cat_id")%>"><%=rs("cat_name")%></option>
我觉得,你要把
<option value="yingwen"><%=rs("cat_name")%></option>
修改为
<option value="<%=rs("cat_id")%>"><%=rs("cat_name")%></option>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找到数据库,打开表,看看表里字段的类型,再看插入数据的类型,对比一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ASP里边转换数据类型函数是"c什么()"
比如要强转为string类型,就是cstr(转换内容)
转换为int类型,就是cint(转换内容)
好多呢。你用这个试试你最有可能出类型问题地方。像什么挂参带过来的ID跟数据库里的ID比较判断。肯定得转换下。
再不行取所有参数的时候都去空,trim()
然后判断的时候给两边都转成一样的类型试试。。
比如要强转为string类型,就是cstr(转换内容)
转换为int类型,就是cint(转换内容)
好多呢。你用这个试试你最有可能出类型问题地方。像什么挂参带过来的ID跟数据库里的ID比较判断。肯定得转换下。
再不行取所有参数的时候都去空,trim()
然后判断的时候给两边都转成一样的类型试试。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询