none
资产合同管理系统------3个TextBox控件怎么样和CustomValidator控件做比较 RRS feed

  • 问题

  •     最近我在编写《资产合同管理系统》,由于基础低要求高,很多问题没有头绪,在此有问必求!
    同时谢谢各位多次解答小弟的疑难杂症!
    ----------开发环境----------
    操作系统:WindowsXP
    开发工具:VS2008
    数据库:SQL2008
    应用技术:LINQ TO SQL
    ----------------------------
    资产合同管理系统------3个TextBox控件怎么样和CustomValidator控件做比较

    -

    -
    ---------------------------------------------
    在资产表中有一个联合主键,分别由“所在地市”、“所在路段”、“门牌号”组成,对应TextBox1、
    TextBox2、TextBox3,然后添加了一个CustomValidator控件
    现在在这三个TextBox中填写内容,写完之后要检测“所在地市”、“所在路段”、“门牌号”合起来的
    值是不是在数据库中有重复的。 重复的话就在CustomValidator控件中显示错误信息!
    我不知道怎么做,于是就蒙,蒙出来两种写法能够满足需要!请大家帮忙看看我蒙的对不对,有什么应该改进的地方
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SqlClient;
    
    public partial class _Default : System.Web.UI.Page 
    {
     protected void Page_Load(object sender, EventArgs e)
     {
    
     }
     protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
     {
      DataClassesDataContext db = new DataClassesDataContext();
      资产表 property;
      args.IsValid = false;//1.首先设置为false
      try//2.尝试找出数据库中相同的项!
      {
       property = db.资产表.Where(c => c.所在地市 + c.所在路段 + c.地址 == TextBox1.Text + TextBox2.Text + TextBox3.Text).First();
       //property = db.资产表.Where(c => c.所在地市 ==TextBox1 .Text && c.所在路段 == TextBox2.Text && c.地址 == TextBox3.Text).First();
       
       Response.Write("已注册!");
       Label1.Text = "有了!!!";
      }
      catch
      {//3.如果未在数据库中找到相同的项,则执行args.IsValid,使界面上CustomValidator控件通过有效性验证!
       args.IsValid = true;
       Response.Write("未注册!");
       Label1.Text = "没!!!";
      }
     }
     protected void Button1_Click(object sender, EventArgs e)
     {
      if (Page.IsValid)//页面控件的有效性验证在这里检验!
      {
       DataClassesDataContext db = new DataClassesDataContext();
       资产表 property=new 资产表();
       
       property.地址 = TextBox3.Text.ToString();
       property.所在地市 = TextBox1.Text.ToString();
       property.所在路段 = TextBox2.Text.ToString();
       db.资产表.InsertOnSubmit(property);
       db.SubmitChanges();
      }
     }
    }
    



    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!
    2011年7月13日 16:31

答案

  • 差不多

     

    建议你看看这个验证控件的帮助,一般这里都会有demo的。参考一下就没啥问题。

     

    你在校验的时候最好能够剔除一下空格字符


    family as water
    2011年7月13日 23:36

全部回复

  • 差不多

     

    建议你看看这个验证控件的帮助,一般这里都会有demo的。参考一下就没啥问题。

     

    你在校验的时候最好能够剔除一下空格字符


    family as water
    2011年7月13日 23:36
  • 得到三个Txt的内容,然后调用数据库select一下。 或者直接insert。 由于你有主键约束,因此如果有重复的话系统会自动返回一个主键重复异常的。 你判断一下是否是哪个异常即可了。即插入了数据,又自动退回了错误,一举两得了。
    信奎爷,无所畏惧!!
    2011年7月14日 1:52