我正在编写一个Web应用程序,我的页面上有一个问题! 我设计了一个管理页面,我想在用户进入此页面之前登录! 在我的页面中有三个RequiredFieldValidator和一个按钮(AddButton),我想在用户点击按钮时检查字段,但是当页面加载时,检查验证并且visual studio抛出异常: “'NameValid'的ControlToValidate属性不能为空”NameValid是我在页面中的验证控件之一! 另一个问题:使用数据库和文件时(使用)块的优点是什么?
我的课在这里:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.UrlReferrer == null)
{
//a page for log in
Response.Redirect("~/LogIn.aspx");
}
}
protected void Page_Error(object sender, EventArgs e)
{
Response.Clear();
Response.Write("<h2>Exception</h2><br />");
Response.Write(Server.GetLastError().Message);
Server.ClearError();
}
protected void AddButton_Click(object sender, EventArgs e)
{
const string ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\rasoul\sourcecode\ASP-PROJECTS\UniversityDataBase\DataBase\PersonDataBase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
using (SqlConnection con=new SqlConnection(ConnectionString))
{
string ID = IDField.Text.Trim();
string Name = NameField.Text.Trim();
string LastName = LastNameField.Text.Trim();
DataSet data = new DataSet();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = String.Format("insert into StudentTable values('{0}','{1}','{2}')", ID, Name, LastName);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
我该怎么办?
答案 0 :(得分:2)
在必填字段验证器中,您必须指定ControlToValidate - 您要验证它是否需要的控件。
MSDN描述 - 使用ControlToValidate属性指定要验证的输入控件。必须将此属性设置为除CustomValidator控件之外的所有验证控件的输入控件的ID,该控件可以留空。如果未指定有效的输入控件,则在呈现页面时将引发异常。 (来源:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basevalidator.controltovalidate.aspx)
使用块的优点是可以确保正确使用IDisposable对象。
using (Font font1 = new Font("Arial", 10.0f))
{
byte charset = font1.GdiCharSet;
}
相当于
{
Font font1 = new Font("Arial", 10.0f);
try
{
byte charset = font1.GdiCharSet;
}
finally
{
if (font1 != null)
((IDisposable)font1).Dispose();
}
}
答案 1 :(得分:0)
你必须检查controltovalidate。你必须分配控制器。