none
asp.net输入数据错误提示怎么弄? RRS feed

  • 问题

  • asp.net 抛出异常!有个添加员工考勤信息的表,表中要求填写员工编号,日期时间,年、月、日分别用三个文本框输入,由于员工编号是唯一的,所以当编号重复的时候提示员工编号重复的错误提示信息,月份只有1~12个月超出也是要报错的,日期2月份只有28天的,这些错误都要做提示,这怎么做啊?

    protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString);
                con.Open();
                string v1 = Label1.Text;
                string bianhao = TextBox1.Text;
                string xingming = TextBox2.Text;
                // string riqi = TextBox3.Text;
                string zhengongshi = TextBox4.Text;
                string jiabangongshi = TextBox5.Text;
                string kuanggongtianshu = TextBox6.Text;
                string chidao = TextBox7.Text;
                string qingjiatianshu = TextBox8.Text;
                string nian = TextBox9.Text;
                string yue = TextBox10.Text;
                string ri = TextBox11.Text;
                // riqi = riqi.Replace("年", "-").Replace("月", "-").Replace("日", "");
                string sql = "Insert into " + v1 + " values('" + bianhao + "','" + xingming + "','" + nian + "-" + yue + "-" + ri+ "','" + zhengongshi + "', '" + jiabangongshi + "','" + kuanggongtianshu + "', '" + chidao + "','" + qingjiatianshu + "')";
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.ExecuteNonQuery();
                this.Label2.Visible = true;
                this.Label2.Text = "添加成功";
                TextBox1.Text = null;
                TextBox2.Text = null;           
                TextBox4.Text = null;
                TextBox5.Text = null;
                TextBox6.Text = null;
                TextBox7.Text = null;
                TextBox8.Text = null;
                TextBox9.Text = null;
                TextBox10.Text = null;
                TextBox11.Text = null;
            }
            catch
            {
                this.Label2.Visible = true;
                this.Label2.Text = "添加失败";
            }

    员工编号重复。。。

    2011年11月4日 1:13

答案

全部回复

  • 建议:

    1)对于员工编号:你拖拽一个CustomValidator(自定义验证控件)。然后设定其ControlId绑定到员工编号,同时重写其Server_Validate事件——类似这样:

    void valComments_ServerValidate(Object source, ServerValidateEventArgs args)
    {
        //自己这里写从数据库判断是否存在这个编号:
        args.Value //提示1:这个属性可以获得被绑定的TextBox中的内容。
        args.IsValid //提示2:这个属性就是设置是否可以通过验证。
    }

    然后在“添加”按钮中直接valComments.Validate(),然后判断if(Page.IsValid){做你做的事情}

    2)日期要判断平年和闰年,不好办。我建议你不要手动输入。应该使用日历控件什么的


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2011年11月4日 2:47
  • public partial class add : System.Web.UI.Page
    {   
        protected void Page_Load(object sender, EventArgs e)
        {
           
            string v1 = Request.QueryString["v"].ToString();
            this.Label1.Text = v1;
            this.Label2.Visible = false;
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Redirect("selectadd.aspx", false);
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["manageConnectionString"].ConnectionString);
                con.Open();
                string v1 = Label1.Text;
                string bianhao = TextBox1.Text;
                string xingming = TextBox2.Text;
                // string riqi = TextBox3.Text;
                string zhengongshi = TextBox4.Text;
                string jiabangongshi = TextBox5.Text;
                string kuanggongtianshu = TextBox6.Text;
                string chidao = TextBox7.Text;
                string qingjiatianshu = TextBox8.Text;
                string nian = TextBox9.Text;
                string yue = TextBox10.Text;
                string ri = TextBox11.Text;
                // riqi = riqi.Replace("年", "-").Replace("月", "-").Replace("日", "");
                string sql = "Insert into " + v1 + " values('" + bianhao + "','" + xingming + "','" + nian + "-" + yue + "-" + ri+ "','" + zhengongshi + "', '" + jiabangongshi + "','" + kuanggongtianshu + "', '" + chidao + "','" + qingjiatianshu + "')";
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.ExecuteNonQuery();
                this.Label2.Visible = true;
                this.Label2.Text = "添加成功";
                TextBox1.Text = null;
                TextBox2.Text = null;           
                TextBox4.Text = null;
                TextBox5.Text = null;
                TextBox6.Text = null;
                TextBox7.Text = null;
                TextBox8.Text = null;
                TextBox9.Text = null;
                TextBox10.Text = null;
                TextBox11.Text = null;         
            }
            catch
            {
                this.Label2.Visible = true;
                this.Label2.Text = "添加失败";
            }
          }
        protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
        {
            string a="select Anumber from "+Label1.Text+" where Anumber='"+TextBox1.Text+"'";       
                if (a == null)
                {              
                    args.IsValid = true;//如果在表中找不到输入的编号那么就可以添加
                }
                else
                {
                   
                    args.IsValid = false;//否则报错
                }              
        }//有个小问题,当我输入的员工编号不重复的时候点击添加,显示添加成功了,然后文本框的内容清空,然后就显示编号重复了,照理我还没填呢,不应该显示编号重复的,不知道是什么原因?是不是编号文本框我还没填数据为空的原因?我把该验证控件隐藏好像也不行,代码不知道添加到哪。。
    }

    2011年11月4日 3:01
  • 1)把CustomValidator控件"ValidateEmptyText"=True

    2)“添加”按钮中,先判断,后操作——

    valComments.Validate();

    if(Page.IsValid)

    {

        //这里放插入代码……

    }


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    • 已编辑 ThankfulHeart 2011年11月4日 3:17
    • 已标记为答案 深白 2011年11月4日 5:46
    2011年11月4日 3:04
  • 可能是load事件没有加 if(!ISPOSTBACK){}的判断!!!!!
    • 已建议为答案 闲云鹤 2011年11月8日 8:15
    2011年11月8日 8:14