我的电子商务网站不再显示价格了

时间:2012-02-13 01:42:38

标签: sql-server-2005 asp-classic

你好再次亲爱的专家,

我在http://www.millenniumhealthproducts.com

有一个电子商务网站

使用Access作为后端数据库,该网站运行良好。 最近,我们将托管公司更改为godaddy.com。

我们将数据从Access迁移到SQL Server数据库,当然还将连接字符串更改为指向SQL Server db。

从那时起,该网站现在显示价格为0.00。

我无法弄清楚造成这种情况的原因。

字段名是cprice。在Access db上,数据类型是Currency,在SQL Server上,它是Money。

我注意到的一个奇怪的事情是,在SQL Server数据库上,该值更像是xx.xxxx。

在Access db上的示例299.0000,该值更像是$ 299.00

有人可以建议如何解决这个问题吗?

更改连接字符串是否与它有关?

如果需要,我可以提供一些示例asp代码。我正在使用经典的asp。

'Response.Buffer = true
Dim catid, strcat
catid = Request.QueryString("id")
strcat = Request.QueryString ("cat")

If catid = "" OR (IsNumeric(catid) = false) Then
    Response.Redirect "index.asp"
End if

Dim catname, productslist
sub productInfo(connObj,category)
    q = chr(34)
    set cmd = server.CreateObject("ADODB.Command")
    cmd.ActiveConnection = connObj
    cmd.CommandText = "qryProdsCategory"
    cmd.CommandType = adCmdStoredProc
    set param = cmd.CreateParameter("theCategory",adInteger,adParamInput,4)
    cmd.Parameters.Append(param)
    cmd("theCategory") = Cint(category)
    set rs = server.CreateObject("ADODB.Recordset")
    set rs = cmd.Execute

    if not rs.EOF then
        catname = rs("catdescription")
    %>
        <table width='100%' border=0 cellspacing=0 cellpadding=0>
        <tr>
     <%
        i = 1
        while not rs.EOF
           id = RS("catalogID")
           'Response.write id
           'response.end
        %>
         <td class=bodytextcolor width='33%' align=center nowrap>
         <img src="img/small/<%=rs("cimageurl")%>" align="center" WIDTH='97' HEIGHT='125'>
         <br/><%=rs("cname")%>
          <br>Regular Price: <font color=red><%= FormatCurrency(rs("cprice"),2) %></font>
         <br/><font color=green>10 or more:</font>
         <font color=red><%=FormatCurrency(rs("cover10price"),2)%></font>
         <br/><font size=-1><a href="product.asp?id=<%=id%>">View Details</a></font>
         <br/>
         <font face="Verdana">
        <form name="_xclick" target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
          <input type="hidden" name="cmd" value="_cart">
          <input type="hidden" name="business" value="millennium2000@charter.net">
          <input type="hidden" name="item_name" value="<%=rs("cname")%>">
          <input type="hidden" name="amount" value="<%= FormatCurrency(rs("cprice"),2) %>">
            <table>
                <tr>
                    <td>Quantity: <input maxLength="6" Name="quantity" size=2 value="1" style="height: 2.2em; border: 1px solid Black; background: ButtonFace;">
          <input type="image" src="images/button_in_cart.jpg" border="0" name="submit" alt="PayPal">
          <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"></td>
                </tr>
        </table>
          <input type="hidden" name="add" value="1">
         </form></td>
       <%

            if (i mod 3) = 0 then
                Response.write "</td></tr>"
            end if
            i = i + 1
            rs.MoveNext
        wend

    else
        Response.write "Product information not found."
        catname = "Error"
    end if
        Response.write "productslist: "
    rs.Close
    set rs = nothing
    set cmd = nothing

end sub

%>

--stored procedure
USE [scartmil]
GO

/****** Object:  StoredProcedure [dbo].[qryProdsCategory]    Script Date: 02/12/2012 19:08:25 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

/****** Object:  StoredProcedure [dbo].[NewStoredProcedure]    Script Date: 02/10/2012 19:36:49 ******/
ALTER PROCEDURE [dbo].[qryProdsCategory](@theCategory int)
AS
SELECT products.*, products.ccategory, categories.catdescription
FROM categories INNER JOIN products ON categories.categoryID = products.ccategory
WHERE (((products.ccategory)=@theCategory));

GO

1 个答案:

答案 0 :(得分:0)

从Access迁移到SQL时,您遇到了许多转换问题,我相信您的问题是迁移级别,而SQL中的字段可能是moneynumeric(18,2),您可能需要如果更改字段的数据类型,请重新移植它或查看SQL是否保留值。

另外,确保在SQL中也配置了任何IDENTITY数据类型,至少从经验来看,Access to SQL并没有真正妥善处理这个问题。