页面和代码分离后为什么会出现”ConnectionString 属性尚未初始化”错误???
为什么页面和代码分离后按“提交”按钮后,会出现错误(而此错误在页面和代码没分离的情况下没有):
System.InvalidOperationException: ConnectionString 属性尚未初始化。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[InvalidOperationException: ConnectionString 属性尚未初始化。]
System.Data.SqlClient.SqlConnection.Open() +809
AspCool.addusers.ValidationNickname(Object source, ServerValidateEventArgs args) +55
System.Web.UI.WebControls.CustomValidator.OnServerValidate(String value) +136
System.Web.UI.WebControls.CustomValidator.EvaluateIsValid() +88
System.Web.UI.WebControls.BaseValidator.Validate() +138
System.Web.UI.Page.Validate() +235
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +35
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1263
错误。多谢高人指点。
问题点数:20、回复次数:12Top
1 楼net_lover(【孟子E章】)回复于 2003-06-03 22:53:20 得分 0
没有定义
参考代码分离的许多例子
http://lucky_elove.www1.dotnetplayground.com/Top
2 楼nancysun()回复于 2003-06-03 23:21:13 得分 0
能否具体写出应如何定义?谢谢。Top
3 楼cmsoft(韦小宝是我的老乡)(草根在路上)回复于 2003-06-03 23:24:31 得分 0
show your codeTop
4 楼nancysun()回复于 2003-06-03 23:34:45 得分 0
用户注册“addusers.aspx”代码如下:
<%@ Page language="c#" Src="addusers.aspx.cs" AutoEventWireup="false" Inherits="AspCool.addusers"%>
<html>
<head><title>新用户注册</title>
<style type="text/css">
<!--
td{font-size:9pt;}
-->
</style>
</head>
<body background="./images/gray.jpg">
<form runat="server">
<table align="center" border="0" bgcolor="#0088FF" width="90%" cellpadding="2">
<tr><td valign="middle" align="left" width="90%" colspan="2" bgcolor="#B3F4FF">
<div align="center">
<font color="#830701">新用户注册</font>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="90%" colspan="2" bgcolor="#B3C4FF">
<font color="#FF0000">请输入您的用户名、密码及相关资料</font>
<font color="#0000FF">(**表示必须要填)</font>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
用 户 名:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:TextBox id="nickname" style="height:19px;width:100px"
Size="20" MaxLength="12" runat="server" /><font color="#FF0000">**
<asp:RequiredFieldValidator id="rfv1"
ControlToValidate="nickname"
Display="dynamic" runat="server">不能为空
</asp:RequiredFieldValidator>
<asp:CustomValidator id="cv1"
ControlToValidate="nickname"
OnServerValidate="ValidationNickname"
ForeColor="red" ErrorMessage="用户名被抢注!"
Display="static" runat="server"/>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
输入密码:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:TextBox id="pwd" TextMode="password"
style="height:19px;width:100px"
Size="20" MaxLength="10" runat="server" /><font color="#FF0000">**
<asp:RequiredFieldValidator id="rfv2"
ControlToValidate="pwd"
Display="dynamic" runat="server">不能为空
</asp:RequiredFieldValidator>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
确认密码:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:TextBox id="pwd2" TextMode="password"
style="height:19px;width:100px"
Size="20" MaxLength="10" runat="server" /><font color="#FF0000">**
<asp:CompareValidator id="CV"
ControlToValidate="pwd"
ControlToCompare="pwd2"
Type="String" Operator="Equal"
Display="dynamic" runat="server">密码不一致
</asp:CompareValidator>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
电子邮件:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:TextBox id="email"
style="height:19px;width:100px"
Size="20" MaxLength="20" runat="server" /><font color="#FF0000">**
<asp:RequiredFieldValidator id="rfv3"
ControlToValidate="email"
Display="dynamic" runat="server">不能为空
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator id="rev1"
ControlToValidate="email"
ValidationExpression="^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"
Display="Dynamic"
runat="server">
不是电子邮件地址
</asp:RegularExpressionValidator>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
公司名称:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:TextBox id="Company" style="height:19px;width:300px"
Size="30" MaxLength="12" runat="server" /><font color="#FF0000">**
<asp:RequiredFieldValidator id="rfv4"
ControlToValidate="Company"
Display="dynamic" runat="server">不能为空
</asp:RequiredFieldValidator>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
公司主页</td>
<td bgcolor="#B3F4FF" align="left">
<asp:TextBox id="homepage" style="height:19px;width:360px"
Size="50" Text="http://" runat="server" />
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
性 别:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:RadioButton id="Male" Text="男" GroupName="Sex"
Checked="true" runat="server" />
<asp:RadioButton id="Female" Text="女"
GroupName="Sex" runat="server" />
</td><tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
教育程度:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:DropDownList id="edu" size="1" runat="server">
<asp:ListItem selected="true" value="本科">本科</asp:ListItem>
<asp:ListItem value="硕士">硕士</asp:ListItem>
<asp:ListItem value="博士">博士</asp:ListItem>
<asp:ListItem value="本科以下">本科以下</asp:ListItem>
</asp:DropDownList>
</td><tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
爱 好:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:DropDownList id="hobby" size="1" runat="server">
<asp:ListItem selected="true" value="读书">读书</asp:ListItem>
<asp:ListItem value="打篮球">打篮球</asp:ListItem>
<asp:ListItem value="踢足球">踢足球</asp:ListItem>
<asp:ListItem value="玩游戏">玩游戏</asp:ListItem>
<asp:ListItem value="下棋">下棋</asp:ListItem>
<asp:ListItem value="看电影">看电影</asp:ListItem>
<asp:ListItem value="网上聊天">网上聊天</asp:ListItem>
<asp:ListItem value="看小说">看小说</asp:ListItem>
<asp:ListItem value="泡吧">泡吧</asp:ListItem>
<asp:ListItem value="听音乐">听音乐</asp:ListItem>
</asp:DropDownList>
</td></tr>
<tr align="center">
<td valign="middle" align="left" width="10%" bgcolor="#B3F4FF">
公司介绍:</td>
<td bgcolor="#B3F4FF" align="left">
<asp:TextBox id="brief" Rows="5" Columns="60"
TextMode="Multiline" runat="server" />
</td></tr>
<tr><td width="100%" align="center" colspan="2" bgcolor="#FFFFFF">
<asp:Button id =Reg Text="注册" OnClick="RegBtn_Click" runat="server" />
</td></tr>
</table>
</form>
</body>
</html>
Top
5 楼nancysun()回复于 2003-06-03 23:36:25 得分 0
后端代码“addusers.aspx.cs”如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace AspCool
{
public class addusers : System.Web.UI.Page
{
public System.Web.UI.WebControls.TextBox nickname;
protected System.Web.UI.WebControls.TextBox pwd;
protected System.Web.UI.WebControls.TextBox email;
protected System.Web.UI.WebControls.TextBox Company;
protected System.Web.UI.WebControls.TextBox brief;
protected System.Web.UI.WebControls.TextBox homepage;
protected System.Web.UI.WebControls.DropDownList edu;
protected System.Web.UI.WebControls.DropDownList hobby;
protected System.Web.UI.WebControls.RadioButton Male;
protected System.Web.UI.WebControls.RadioButton Female;
protected System.Web.UI.WebControls.Button Reg;
String strConn;
SqlConnection cn;
private void Page_Load(Object sender, EventArgs e)
{
// 从Web.config文件中读取连接字符串
strConn=ConfigurationSettings.AppSettings["sf"];
//cn = new SqlConnection("server=localhost;uid=sa;pwd=;database=sf");
}
public void ValidationNickname(object source, ServerValidateEventArgs args)
{
// 连接到sf数据库
cn=new SqlConnection(strConn);
//cn = new SqlConnection("server=localhost;uid=sa;pwd=;database=sf");
// 打开连接
cn.Open();
// 构造SQL语句,该语句检查用户名是否被抢注
String strSQL="select * from RegUsers where NickName='"+nickname.Text+"'";
// 创建Command对象
SqlCommand cm=new SqlCommand(strSQL,cn);
// 执行ExecuteReader()方法
SqlDataReader dr=cm.ExecuteReader();
if (dr.Read()) {
args.IsValid=false; // 用户名被抢注
} else {
args.IsValid=true; // 用户名没被抢注
}
// 关闭连接
cn.Close();
}
public void RegBtn_Click(object sender, EventArgs e)
{
if (Page.IsValid) {
// 连接到sf数据库
strConn=ConfigurationSettings.AppSettings["sf"];
cn=new SqlConnection(strConn);
//cn = new SqlConnection("server=localhost;uid=sa;pwd=;database=sf");
// 打开连接
cn.Open();
// 构造SQL语句,该语句往RegUsers表中添加一条记录
String strSQL="insert into RegUsers (NickName,Password,Sex,Company,"+
"Email,Education,Hobby,Brief,HomePage,LoginTime) values (@NickName,"+
"@Password,@Sex,@Company,@Email,@Education,@Hobby,@Brief,"+
"@HomePage,@LoginTime)";
// 创建Command对象
SqlCommand cm=new SqlCommand(strSQL,cn);
// 添加参数
cm.Parameters.Add(new SqlParameter("@NickName",SqlDbType.NVarChar,20));
cm.Parameters.Add(new SqlParameter("@Password",SqlDbType.NVarChar,20));
cm.Parameters.Add(new SqlParameter("@Sex",SqlDbType.VarChar,2));
cm.Parameters.Add(new SqlParameter("@Email",SqlDbType.NVarChar,30));
cm.Parameters.Add(new SqlParameter("@Company",SqlDbType.NVarChar,50));
cm.Parameters.Add(new SqlParameter("@Education",SqlDbType.NVarChar,10));
cm.Parameters.Add(new SqlParameter("@Hobby",SqlDbType.NVarChar,16));
cm.Parameters.Add(new SqlParameter("@Brief",SqlDbType.NVarChar,255));
cm.Parameters.Add(new SqlParameter("@HomePage",SqlDbType.NVarChar,30));
cm.Parameters.Add(new SqlParameter("@LoginTime",SqlDbType.DateTime));
// 给参数赋值
cm.Parameters["@NickName"].Value=nickname.Text;
cm.Parameters["@Password"].Value=pwd.Text;
if (Male.Checked) cm.Parameters["@Sex"].Value="男";
if (Female.Checked) cm.Parameters["@Sex"].Value="女";
cm.Parameters["@Email"].Value=email.Text;
cm.Parameters["@Company"].Value=Company.Text;
cm.Parameters["@Education"].Value=edu.SelectedItem.Value;
cm.Parameters["@Hobby"].Value=hobby.SelectedItem.Value;
cm.Parameters["@Brief"].Value=brief.Text;
cm.Parameters["@HomePage"].Value=homepage.Text;
cm.Parameters["@LoginTime"].Value=DateTime.Today;
// 执行ExecuteNonQuery()方法
//cm.Connection.Open();
cm.ExecuteNonQuery();
//cm.Connection.Close();
// 关闭连接
cn.Close();
// 保存当前用户的用户名
Session["UserName"]=nickname.Text;
//MessageBox.Show("注册成功");
// 进入主画面
Response.Redirect("index.htm");
}
}
}
}
谢谢高手指点。
Top
6 楼OK521(拉登陪我打CS)回复于 2003-06-04 00:47:56 得分 0
strConn=ConfigurationSettings.AppSettings["sf"];
cn=new sqlconnection(strconn)Top
7 楼singleflower(诗凡(愿父亲安息))回复于 2003-06-04 04:21:37 得分 5
在WEBCONGFIG文件里保存ConnectionString 值就可以,在配置数据连接时有这个选项,如果不点选这一选项而直接去连数据库就会报此错误.Top
8 楼yuanylong(小新)回复于 2003-06-04 08:38:20 得分 5
你看看这几句:
public void ValidationNickname(object source, ServerValidateEventArgs args)
{
// 连接到sf数据库
cn=new SqlConnection(strConn);
其中strConn 还没有值呢。
虽然在程序最上面说明了这个变量。
但是在这个函数里并没有初始化初值。
解决办法就是楼上的办法。Top
9 楼DreamMeng( 追梦 )回复于 2003-06-04 08:45:33 得分 0
web.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="sf" value="server=localhost;uid=sa;pwd=;database=sf" />
</appSettings>
...
Top
10 楼fupip(小)¤(贝)回复于 2003-06-04 08:52:26 得分 5
String strConn="";
Top
11 楼fupip(小)¤(贝)回复于 2003-06-04 08:54:12 得分 5
strConn=ConfigurationSettings.AppSettings["sf"];
放到构造函数中。Top
12 楼zxpcomeon(浪子想家)回复于 2003-06-04 09:51:51 得分 0
连上数据库了吗?Top
相关问题
- ConnectionString 属性尚未初始化??????
- ConnectionString 属性尚未初始化
- ConnectionString 属性尚未初始化
- ConnectionString 属性尚未初始化
- 为何报错:ConnectionString 属性尚未初始化。
- “connectionstring 属性尚未初始化”的问题
- 异常详细信息: System.InvalidOperationException: ConnectionString 属性尚未初始化。
- 如何通过代码初始化DataEnvironment的连接属性?如access数据库的路径.
- 初始化代码添加的问题
- 怎样给type="file"的 value 属性填入 初始化值呢???



