2012-06-29 56 views
1

我是asp的初学者,并且遇到此代码的问题。我曾多次尝试调试,但仍然无法正常工作。当我运行代码时,它显示内部服务器错误500.我不确定有什么问题。如果我删除了这段代码,它将起作用。有人可以帮助我,并指向正确的方向吗?请?来自数据库连接的内部错误

<% 
strSQL = "SELECT _id,name,price,out_of_stock FROM class_product WHERE purchase_form = 1 ORDER BY _rank ASC" 

OpenMainConn() 
set rsProducts = Server.CreateObject("ADODB.Recordset") 
rsProducts.Open strSQL, MainDBConn 
dim count 
if not rsProducts.eof then 
    dim exceptions 
    while not rsProducts.eof 
     count = count + 1 
     exceptions = exceptions & "product" & count & "," 
%> 
<tr> 
    <td> 
     <%=(rsProducts("name"))%> 
    </td> 
    <td align="right"> 
     <%=(FormatCurrency(rsProducts("price"),2))%> 
    </td> 
    <td align="center"> 
    <% if rsProducts("out_of_stock") = 0 then %> 
     <input type="text" class="input_text" style="width: 20px;" id="product<%=count %>" name="product<%=count %>" onchange="updateSub();" /> 
    <% else %> 
     <img border="0" src="images/OUT-OF-STOCK.gif"/><input type="hidden" class="input_text" style="width: 20px;" id="product<%=count %>" name="product<%=count %>" onchange="updateSub();" /> 
    <% end if %> 
     <input type="hidden" id="productDetails<%=count %>" name="productDetails<%=count %>" value="<%=(rsProducts("name") & "|" & rsProducts("price"))%>" /> 
    </td> 
</tr> 
<% 
     rsProducts.movenext() 
    wend 
end if 
rsProducts.Close() 
set rsProducts = nothing 
CloseMainConn() 
%> 
+0

这很难说没有看到什么'OpenMainConn()'其实是否 - 你是否已经尝试绕过这个函数并创建一个数据库连接(替换'MainDBConn')? – Filburt

+0

你需要首先看到真正的错误,为此关闭IE友好的错误消息:工具 - > Internet选项 - >高级 - >取消选中“显示友好的HTTP错误消息”重新加载页面,并在此发布完整的错误。 –

回答

1

您的主要问题是在您的数据库连接。

尝试用下面绕过它(你可以调整)

'OpenMainConn() 
Set MainDBConn = Server.CreateObject("ADODB.Connection") 
MainDBConn.open "Provider=SQLOLEDB.1;Password=ppppppppp;Persist Security Info=True;User ID=xxxxxx;Initial Catalog=Test;Data Source=123-AAAAA11111\SQLEXPRESS;" 

也应关闭的连接,如下面

If rsProducts.State = adStateOpen Then 
    rsProducts.Close 
End If 
Set rsProducts = Nothing 
+1

感谢您的帮助 – Riders

+0

@Rohan - 没问题的队友! –