如果为SQL Server数据库,这个字段没什么意义,可以选用uniqueidentifier类型

解决方案 »

  1.   

    select Id from table where Id = 你要判断的Id如果有返回值就表示有该ID;
    如果没有返回值,则没有该ID;
    :)
      

  2.   

    项目ID是以前通过填写添加的,后面添加的时候不能和前面的重复,如果和数据库中的项目ID比对之后,发现该项目ID重复,就不应该允许通过提交。
      

  3.   

    提交前先检查ID是否存在,
    select count(*) from table where Id = 你要判断的Id,
    返回值>0提示用户重新输入该字段的值.
      

  4.   

    try
    {
      ...提交;
    }
    catch()
    {
      ..."已存在,请重新输入!"
    }
    你是用ACCESS的吧?
      

  5.   

    private void Button1_Click(object sender, System.EventArgs e)
    {                 
    if (TextBox1.Text=="")
    {
    Response.Write("<script language=javascript>alert('项目名称不能为空!');</script>");
    }
    else if (TextBox2.Text=="")
    {   
    Response.Write("<script language=javascript>alert('项目编号不能为空!');</script>");
    }
    else if (TextBox3.Text=="")
    {
    Response.Write("<script language=javascript>alert('起止时间不能为空!');</script>");
    }
    else if (TextBox4.Text=="")
    {
    Response.Write("<script language=javascript>alert('项目版本不能为空!');</script>");
    }
    else 
    {
    应该在此处判断item2的字段是否重复。Response.Write("<script language=javascript>alert('该项目编号已经存在');</script>");
    }

    SqlConnection myConnection =new SqlConnection("server=(local);database=testinfo;uid=sa;pwd=");
    String insertCmd = "insert into pro_info (pro_name, proid, pro_date, version) values (@item1,@item2,@item3,@item4)";
    SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);

    myCommand.Parameters.Add(new SqlParameter("@item1",SqlDbType.NChar,40));
    myCommand.Parameters["@item1"].Value=TextBox1.Text;

    myCommand.Parameters.Add(new SqlParameter("@item2",SqlDbType.NChar,40));
    myCommand.Parameters["@item2"].Value=TextBox2.Text;

    myCommand.Parameters.Add(new SqlParameter("@item3",SqlDbType.NChar,40));
    myCommand.Parameters["@item3"].Value=TextBox3.Text;

    myCommand.Parameters.Add(new SqlParameter("@item4",SqlDbType.NChar,40));
    myCommand.Parameters["@item4"].Value=TextBox4.Text;myCommand.Connection.Open();
    myConnection.Close();
    Response.Write("<script language=javascript>alert('项目添加成功!');</script>");
    }
    }
    }

    private void Button2_Click(object sender, System.EventArgs e)
    {
                                TextBox1.Text="";
     TextBox2.Text="";
     TextBox3.Text="";
     TextBox4.Text="";  
    }
    判断项目编号重复的条件是什么即是本问题的关键!谢谢诸位支持!
      

  6.   

    判断项目编号重复的条件是什么即是本问题的关键!这个好象不是很困难呀;select item2 from table where item2= 你要判断的item2
    //就是item2呀;如果有返回值就表示有该item2;
    如果没有返回值,则没有该item2;
    :)
      

  7.   

    项目编号由程序生成就不会重复了!!
    首先:
    select max(项目编号) from table然后在将结果+1就可以了!那个项目编号不让填入。TextBox2.Enabled=false;
      

  8.   

    你把数据连接和添加数据那一串代码放到"项目版本不能为空"那个条件里面去,
    private void Button1_Click(object sender, System.EventArgs e)
    {                 
    if (TextBox1.Text=="")
    {
    Response.Write("<script language=javascript>alert('项目名称不能为空!');</script>");
    }
    else if (TextBox2.Text=="")
    {   
    Response.Write("<script language=javascript>alert('项目编号不能为空!');</script>");
    }
    else if (TextBox3.Text=="")
    {
    Response.Write("<script language=javascript>alert('起止时间不能为空!');</script>");
    }
    else if (TextBox4.Text=="")
    {
    Response.Write("<script language=javascript>alert('项目版本不能为空!');</script>");
    }
    else 
    {
    //应该在此处判断item2的字段是否重复。
      try
    {
    SqlConnection myConnection =new SqlConnection("server=(local);database=testinfo;uid=sa;pwd=");
    String insertCmd = "insert into pro_info (pro_name, proid, pro_date, version) values (@item1,@item2,@item3,@item4)";
    SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);
    //注意这里
    myCommand.Parameters.Add(new SqlParameter("@item4",SqlDbType.NChar,40));
    myCommand.Parameters["@item4"].Value=TextBox4.Text;//-----
    myCommand.Parameters.Add(new SqlParameter("@item1",SqlDbType.NChar,40));
    myCommand.Parameters["@item1"].Value=TextBox1.Text;

    myCommand.Parameters.Add(new SqlParameter("@item2",SqlDbType.NChar,40));
    myCommand.Parameters["@item2"].Value=TextBox2.Text;

    myCommand.Parameters.Add(new SqlParameter("@item3",SqlDbType.NChar,40));
    myCommand.Parameters["@item3"].Value=TextBox3.Text;
    myCommand.Connection.Open();
    myConnection.Close();
    }
    catch{Response.Write("<script language=javascript>alert('该项目编号已经存在');</script>");
    }
    }

    Response.Write("<script language=javascript>alert('项目添加成功!');</script>");
    }
    }
    }

    private void Button2_Click(object sender, System.EventArgs e)
    {
                                TextBox1.Text="";
     TextBox2.Text="";
     TextBox3.Text="";
     TextBox4.Text="";  
    }//因为你前面已经判断过"...为空之类的",在try{ ...}catch{}里面的异常就只
    //有"项目编号重复了"这一个了.
    //只要遇到异常它就不会添加记录了,只好重输!
    //另外把添加"项目编号"这一句写到最前面.//试一下,行不?
      

  9.   

    对不起,上面错了一点:"项目编号"应该是TextBox2.Text,我把它搞成TextBox4.Text了.
      

  10.   

    还是有一个办法解决你这个问题的。
    就是利用数据库报错,
    首先需要你做一个表,这个表的主建就是项目编号。(只有单一主建)。如果应用比较复杂可以让这个表仅存项目编号,和该编号的一些辅助说明,比如名称等等。
    然后在操作的时候直接向此表插入项目编号:逻辑实例程序如下:try
    {
       运行insert into table set 项目编号 values 录入值;
    }
    catch(Exception e)
    {
       Txt显示.Text="编号为" + 录入值的 +"的项目已经存在请重新录入"
    }就可以了其实你这个东西挺象个性汽车拍照的申请程序。我想当时交通局应当也面临者个性拍照不能重复而且要手工录入的情况。
      

  11.   

    try
    {
    }catch
    {
    }
    is the best