ASP连接到SQL Server数据库 注册页面样本 全名: 电邮: 电话: 公司: 职位名称:

ASP连接到SQL Server数据库 注册页面样本 全名: 电邮: 电话: 公司: 职位名称:,sql,sql-server,asp-classic,Sql,Sql Server,Asp Classic,当我运行此页面时,收到一条错误500消息,我不知道我的错误在哪里 我还使用名为blah的DSN连接到我的SQL Server 我单独运行ASP部分,它可以工作,但是数据库部分是我的问题所在。我非常感谢您的帮助,因为我对这方面还比较陌生。首先,您应该在web服务器上激活友好的错误显示,以便准确地知道错误是什么以及错误在哪里,而不是您目前收到的通用的“不说任何话”错误500 第二,在此期间,添加几个Response.write,然后是Response.Flush,查看发生了什么以及发生了什么;例如,

当我运行此页面时,收到一条
错误500
消息,我不知道我的错误在哪里

我还使用名为blah的DSN连接到我的SQL Server


我单独运行ASP部分,它可以工作,但是数据库部分是我的问题所在。我非常感谢您的帮助,因为我对这方面还比较陌生。

首先,您应该在web服务器上激活友好的错误显示,以便准确地知道错误是什么以及错误在哪里,而不是您目前收到的通用的“不说任何话”错误500

第二,在此期间,添加几个Response.write,然后是Response.Flush,查看发生了什么以及发生了什么;例如,要显示生成sql字符串的结果:

<%
'declare the variables
Dim Recordset
Dim sql
dim Conn
Dim name1,email1,phone1,company1,title1
name1 = request.form("TxtName")
email1 = request.form("TxtEmail")
phone1 = request.form("TxtPhone")
company1 = request.form("TxtCompany")
title1 = request.form("TxtJob")

'create an instance of the ADO connection and recordset objects
Set Conn= Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")


'open the connection to the database
Conn.ConnectionString = "DSN=blah;User Id=...;Password=...;Database=...."


'Open the recordset object executing the SQL statement and return records
Recordset.Open 
Conn.open

sql="INSERT INTO register (Name, email, phonenumber, company, title)"
sql=sql & "values ('"& name1 &"','"& email1 &"','"& phone1 &"','"& company1 &"','"& title1 &"')"


Conn.Execute(sql)
Conn.Close()

%>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>Sample Registration Page</title>
</head>
<body>
    <form name"form" action="">
        <table>
            <tr>
                <td>Full Name:</td>
                <td>
                    <input name="TxtName" id="TxtName" type="text" />
                </td>
            </tr>
            <tr>
                <td>Email:</td>
                <td>
                    <input name="TxtEmail" id="TxtEmail" type="text" />
                </td>
            </tr>
            <tr>
                <td>Phone:</td>
                <td>
                    <input name="TxtPhone" id="TxTPhone" type="text" />
                </td>
            </tr>
            <tr>
                <td>Company:</td>
                <td>
                    <input name="TxtCompany" id="TxtCompany" type="text" />
                </td>
            </tr>
            <tr>
                <td>Job Title:</td>
                <td>
<input name="TxtJob" id="TxtJob" type="text" />
                </td>
        </table>
   <input name="button" ID="Button1" value="submit" type="Submit" />
    </form>
</body>
</html>
sql=。。。
response.write sql&“
” 响应。刷新
第二,尝试打开没有关联的命令对象或sql查询字符串的记录集;您不能这样做,事实上,这里不需要任何记录集,因为您有一个Insert查询,而不是Select查询

最后,将DSN与ADODB一起使用是一个坏主意。DSN用于ODBC,通过在ADODB下使用ODBC,您将向数据连接添加一个旧的、无用的层。您应该为SQL Server使用最新的本机OLEDB提供程序。在web上搜索连接字符串,您将获得几个网站,其中包含可用提供商及其连接字符串的完整详细信息。


sql = ...
response.write sql & "<br>"
response.flush
注册页面样本 全名: 电邮: 电话: 公司: 职位名称:
由于您不从数据库中检索任何数据,所以不需要记录集

将此代码复制并粘贴到文件中,并将其命名为“registration.asp”

不要忘记用实际的连接字符串替换连接字符串

如需辅导,请访问www.w3schools.com


希望这有帮助

SQL中似乎缺少空格字符

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Sample Registration Page</title>
</head>
<body>
<form action="registration.asp" method="POST" name="form1">
<table>
<tr>
<td>Full Name:</td>
<td><input name="TxtName" id="TxtName" type="text" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="TxtEmail" id="TxtEmail" type="text" /></td>
</tr>
<tr>
<td>Phone:</td>
<td><input name="TxtPhone" id="TxTPhone" type="text" /></td>
</tr>
<tr>
<td>Company:</td>
<td><input name="TxtCompany" id="TxtCompany" type="text" /></td>
</tr>
<tr><td>Job Title:</td>
<td><input name="TxtJob" id="TxtJob" type="text" /></td>
</table>
<input name="button" ID="Button1" value="submit" type="Submit" />
</form>
</body>
</html>

<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" then

Dim Conn, Rs, ConnString, SQL_Insert
Dim name1,email1,phone1,company1,title1

name1 = request.form("TxtName")
email1 = request.form("TxtEmail")
phone1 = request.form("TxtPhone")
company1 = request.form("TxtCompany")
title1 = request.form("TxtJob")

Set Conn= Server.CreateObject("ADODB.Connection")
ConnString = "DSN=blah;User Id=...;Password=...;Database=...."
Conn.Open ConnString

SQL_Insert="INSERT INTO register (Name, email, phonenumber, company, title)" & _
           "values ('"& name1 &"','"& email1 &"','"& phone1 &"','"& company1 &"','"& title1 &"');"

Conn.Execute SQL_Insert
Conn.Close
Set Conn = Nothing
Set SQL_Insert = Nothing

End If
%>

你确定它是asp.net吗?看起来像经典的asp很抱歉这是普通的asp。我是新来的。对不起,我犯了错误。这不是“正常”的asp,因为2014年将是asp.NET。这就是2000年左右退休的遗留ASP。@TomTom不,不会的。这就是为什么有这么多问题没有正确标记的原因。2014年的ASP.Net是ASP.Net,它运行在.Net框架上,这就是ASP与“经典ASP”、“普通ASP”、“传统ASP”的区别,不管你怎么称呼它,但它仍然是ASP(请查看同义词,你会注意到它的存在)。非常感谢。你的回答真的很有帮助。你能告诉我如何激活友好显示错误吗?再次感谢。这取决于您使用的web服务器的版本。在internet上搜索“错误500”或“asp错误500”。使用Visual Studio,如果需要,您甚至可以在调试模式下输入页面的执行。对于Windows 7,您需要打开Internet信息服务(IIS)管理器。对于整个服务器或所需的网站(您可能有多个网站),请转到ASP属性,并在
调试属性
下,将所有内容设置为True(如果您不知道如何读取,则可能
将错误记录到NT Log
)。要激活Visual Studio调试器,请在VBScript代码中的任意位置插入命令
Stop
。您可以在必要时添加测试;示例:
if(mydebug=1)then Stop
这是我找到的关于启用经典ASP错误消息的最佳指南,对于SQL Server连接字符串来说,这是一个很好的资源。您可能需要选择OLEDB或本机客户端提供程序之一
sql = "INSERT INTO register (...)SPACE-MISSING-HERE"
sql = sql & "values (...)"

Conn.Execute(sql)
Conn.Close()