asp+access改成了asp+sql,但是后台不能读取数据,前台可以,怎么回事

strID=ReplaceBadChar(request("id"))strUserID=session("188_User")strTDTitle=ManageGetT... strID=ReplaceBadChar(request("id"))
strUserID=session("188_User")
strTDTitle=ManageGetTDTitle("NewsName",strUserID) '表格信息标题
strUrl="" '翻页链接
strKeyTxt=ReplaceBadChar(trim(request("keyTxt"))) '关键字

sql="select * from News where UserID='"&strUserID&"' and NewsType="&strID&" order by id desc"
if not isnull(strKeyTxt) and strKeyTxt<>"" then
strKeyTxt=ReplaceBadChar(trim(request("keyTxt")))
sql="select * from News where UserID='"&strUserID&"' and NewsType="&strID&" and (Title like '%"&strKeyTxt&"%' or Content like '%"&strKeyTxt&"%') order by id desc"
strUrl="&keyTxt="&strKeyTxt
end if
if request("Submit")="搜索" then
strKeyTxt=ReplaceBadChar(trim(request.form("keyTxt")))
sql="select * from News where UserID='"&strUserID&"' and NewsType="&strID&" and (Title like '%"&strKeyTxt&"%' or Content like '%"&strKeyTxt&"%') order by id desc"
strUrl="&keyTxt="&strKeyTxt
end if
strUrl=strUrl&"&id="&strID
这是部分代码
展开
 我来答
司马刀剑
高粉答主

2018-11-02 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7544万
展开全部
1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:%22delete * from user where id=10%22,而对SQL SERVER数据库进行删除是用:%22delete user where id=10%22.
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。1,对于日期字段字段
access表示为:#1981-28-12#
SQLSERVER2000表示为:‘‘1981-02-12‘‘
2,SQL语句区别,select ,update 在对单表操作时都差不多,
但多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句对比:
SQLSERVER中更新多表的UPDATE语句:
UPDATE Tab1
SET a.Name = b.Name
FROM Tab1 a,Tab2 b
WHERE a.ID = b.ID;
同样功能的SQL语句在ACCESS中应该是
UPDATE Tab1 a,Tab2 b
SET a.Name = b.Name
WHERE a.ID = b.ID;
即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.
更新单表时:都为:
UPDATE table1 set ab=‘12‘,cd=444 where ….
3,delete语句
access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。
sqlserve 中则为: delete from table1 where a>2 即没有*号中国2006-4-15 19:27:48
4,as 后面的计算字段区别
access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS后的字段当作一个数据库字段参与计算。
sqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS后的字段当作一个数据库字段参与计算。
5,[.]与[!]的区别
access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。
sqlserve 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。
6,联合查询时,
access中多表联合查询:‘select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b
sqlserve 中则‘select a,b from(
select a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b即要加一个虚的表tmptable,表名任意。—
7,access升级到sqlserver时,
可以用sqlserver的数据导入工具导入数据
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式