asp.net 在执行 insert 语句出错
我是c#和asp.net初学者,在看书做例子时,在运行用户注册程序出错,运行用户登录程序没有错。我数据库是:sql server 2000
打过sp4。
另外在vs2005运行正常,为何直接输入网站地址(http://192.168.0.99/login.aspx)不能运行?
-------错误信息:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
SQLExpress 数据库文件自动创建错误:
连接字符串使用应用程序 App_Data 目录中的数据库位置指定了一个本地 SQL Server Express 实例。由于提供程序确定应用程序服务数据库不存在,因此试图自动创建该数据库。要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须满足下列配置要求:
如果应用程序 App_Data 目录不存在,则 Web 服务器帐户必须具有对应用程序目录的读写访问权限。这是因为如果不存在 App_Data 目录,Web 服务器帐户将会自动创建它。
如果应用程序 App_Data 目录已存在,则 Web 服务器帐户只要求对应用程序 App_Data 目录的读写访问权限。这是必要的,因为 Web 服务器帐户将尝试确认 SQL Server Express 数据库已在应用程序 App_Data 目录中。如果从 Web 服务器帐户撤消对 App_Data 目录的读访问权限,提供程序便无法正确地确定 SQL Server Express 数据库是否已存在。如果提供程序试图创建已存在的数据库的副本,就会出错。写访问权限是必需的,因为创建新数据库时需要使用 Web 服务器帐户凭据。
计算机上必须安装 SQL Server Express。
Web 服务器帐户的进程标识必须具有本地用户配置文件。有关如何为计算机帐户和域帐户创建本地用户配置文件的详细信息,请参见自述文档。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
-------Logon.aspx.cs源码,这段代码没有错,能正常运行(就是能检测用户登录):
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Logon : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void OnAuthenticate(object sender, AuthenticateEventArgs e)
{
bool Authenticated = false;
Authenticated = SiteSpecificAuthenticationMethod(Login1.UserName,Login1.Password);
e.Authenticated = Authenticated;
}
private bool SiteSpecificAuthenticationMethod(string UserName,string Password)
{
string strUserName,strPWD;
string strSql;
SqlDataReader myReader;
strUserName=Login1.UserName;
strPWD=Login1.Password;
strSql="select * from table1 where yhm='"+strUserName+"'";
clsDB dbo=new clsDB();
myReader=dbo.GetResultAsDataReader(strSql);
if (myReader.Read())
{
string strUserPwd=myReader["kl"].ToString();
if (strPWD==strUserPwd)
{
Response.Redirect("~/default.aspx");
myReader.Close();
myReader.Dispose();
dbo.killme();
return true;
}
else
{
Login1.FailureText="密码失效";
myReader.Close();
myReader.Dispose();
dbo.killme();
return false;
}
}
else
{
Login1.FailureText="用户不存在";
myReader.Close();
myReader.Dispose();
dbo.killme();
return false;
}
}
}
---------CreateUser.aspx.cs 源码,运行出错,错误代码见面。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class CreateUser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
string strUserID;
string strUserPwd;
string strEmail;
string strQuestion;
string strAnswer;
string strSql;
string strTip = "";
clsDB dbo = new clsDB();
strUserID = CreateUserWizard1.UserName;
strUserPwd = CreateUserWizard1.Password;
strEmail = CreateUserWizard1.Email;
strQuestion = CreateUserWizard1.Question;
strAnswer = CreateUserWizard1.Answer;
strSql = "insert into TABLE1 values('" + strUserID + "','" + strUserPwd + "','" + strEmail + "','" + strQuestion + "','" + strAnswer + "')";
strTip = dbo.ExecuteNoReturn(strSql, strTip);
if (strTip == "成功")
{
lblMsg.Text = "ok";
}
else
{
lblMsg.Text = "no";
}
dbo.killme();
}
}
----------------Web.Config
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings>
<add key="ConnectionString" value="Server=mySERVERS;Database=mydb;UID=sa;Password=111111"/>
</appSettings>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true"/>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
打过sp4。
另外在vs2005运行正常,为何直接输入网站地址(http://192.168.0.99/login.aspx)不能运行?
-------错误信息:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
SQLExpress 数据库文件自动创建错误:
连接字符串使用应用程序 App_Data 目录中的数据库位置指定了一个本地 SQL Server Express 实例。由于提供程序确定应用程序服务数据库不存在,因此试图自动创建该数据库。要成功检查应用程序服务数据库是否存在并自动创建应用程序服务数据库,必须满足下列配置要求:
如果应用程序 App_Data 目录不存在,则 Web 服务器帐户必须具有对应用程序目录的读写访问权限。这是因为如果不存在 App_Data 目录,Web 服务器帐户将会自动创建它。
如果应用程序 App_Data 目录已存在,则 Web 服务器帐户只要求对应用程序 App_Data 目录的读写访问权限。这是必要的,因为 Web 服务器帐户将尝试确认 SQL Server Express 数据库已在应用程序 App_Data 目录中。如果从 Web 服务器帐户撤消对 App_Data 目录的读访问权限,提供程序便无法正确地确定 SQL Server Express 数据库是否已存在。如果提供程序试图创建已存在的数据库的副本,就会出错。写访问权限是必需的,因为创建新数据库时需要使用 Web 服务器帐户凭据。
计算机上必须安装 SQL Server Express。
Web 服务器帐户的进程标识必须具有本地用户配置文件。有关如何为计算机帐户和域帐户创建本地用户配置文件的详细信息,请参见自述文档。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
-------Logon.aspx.cs源码,这段代码没有错,能正常运行(就是能检测用户登录):
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Logon : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void OnAuthenticate(object sender, AuthenticateEventArgs e)
{
bool Authenticated = false;
Authenticated = SiteSpecificAuthenticationMethod(Login1.UserName,Login1.Password);
e.Authenticated = Authenticated;
}
private bool SiteSpecificAuthenticationMethod(string UserName,string Password)
{
string strUserName,strPWD;
string strSql;
SqlDataReader myReader;
strUserName=Login1.UserName;
strPWD=Login1.Password;
strSql="select * from table1 where yhm='"+strUserName+"'";
clsDB dbo=new clsDB();
myReader=dbo.GetResultAsDataReader(strSql);
if (myReader.Read())
{
string strUserPwd=myReader["kl"].ToString();
if (strPWD==strUserPwd)
{
Response.Redirect("~/default.aspx");
myReader.Close();
myReader.Dispose();
dbo.killme();
return true;
}
else
{
Login1.FailureText="密码失效";
myReader.Close();
myReader.Dispose();
dbo.killme();
return false;
}
}
else
{
Login1.FailureText="用户不存在";
myReader.Close();
myReader.Dispose();
dbo.killme();
return false;
}
}
}
---------CreateUser.aspx.cs 源码,运行出错,错误代码见面。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class CreateUser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
string strUserID;
string strUserPwd;
string strEmail;
string strQuestion;
string strAnswer;
string strSql;
string strTip = "";
clsDB dbo = new clsDB();
strUserID = CreateUserWizard1.UserName;
strUserPwd = CreateUserWizard1.Password;
strEmail = CreateUserWizard1.Email;
strQuestion = CreateUserWizard1.Question;
strAnswer = CreateUserWizard1.Answer;
strSql = "insert into TABLE1 values('" + strUserID + "','" + strUserPwd + "','" + strEmail + "','" + strQuestion + "','" + strAnswer + "')";
strTip = dbo.ExecuteNoReturn(strSql, strTip);
if (strTip == "成功")
{
lblMsg.Text = "ok";
}
else
{
lblMsg.Text = "no";
}
dbo.killme();
}
}
----------------Web.Config
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings>
<add key="ConnectionString" value="Server=mySERVERS;Database=mydb;UID=sa;Password=111111"/>
</appSettings>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true"/>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
...全文
请发表友善的回复…
发表回复
yanyu757364597 2010-01-03
- 打赏
- 举报
我也遇到跟楼主差不多的问题了 登录没错 注册表面上能成功可是数据没有真正的写到数据库里 所以用心注册的去登陆 出错 我还是没找到解决的办法
恩 楼主的解决方案也要贴出来嘛 这样我就可以参考了
恩 楼主的解决方案也要贴出来嘛 这样我就可以参考了
gjm90344 2008-01-03
- 打赏
- 举报
我机械安装的是sql 2000,没有安装sql 2005 ,在安装vs2005时候,可能安装了的vs2005中,sql2005的一些东西。
另外我连DB没有问题,因为我检测用户登录没有问题,就是不能注册。
另外我连DB没有问题,因为我检测用户登录没有问题,就是不能注册。
zfh198601 2008-01-03
- 打赏
- 举报
先看看你连DB有没有问题
ycagri 2008-01-03
- 打赏
- 举报
首先检查IIS的配置情况
然后检查Sql Server 2005的配置情况,看看是否允许TCP连接
然后检查Sql Server 2005的配置情况,看看是否允许TCP连接
gjm90344 2008-01-03
- 打赏
- 举报
自己解决了,很简单,