string sqlstr = "insert tbl_zblei select max(lei_bh)+1,'" + this.TextBox1.Text + "' from tbl_zblei";
我现在数据库是这样的:
id       lei_bh   lei_mc
1 1001 交通工具
2 1002 通讯工具
3 1003 计算机及配套设备
4 1004 管理器材
5 1005 勘察取证器材
6 1006 警械
7 1007 防护器材如果我前台页面TextBox1.Text在输入防护器材,它就会提示,已有此字段,请从新输入,改怎么写?

解决方案 »

  1.   

    string sqlstr="select count(1) from tbl_zblei where lei_mc='"+this.TextBox1.Text+"'";check data before insert
      

  2.   

    那你就先查询下TextBox1.Text中输入的在数据库中是否已经存在  存在就提示  不存在就运行你上面的那句SQL
      

  3.   

    TextChanged事件,加上验证是否存在的代码
      

  4.   

    首先你查询写个sql查询有没有这个字段,有就提示出来不执行你的那个插入
    没有就插入
      

  5.   

    string sqlstr0 = "select lei_mc from tbl_zblei";
                if (sqlstr0 == this.TextBox1.Text)
                {
                    AjaxAlert(Page, "数据库已有此类别!");
                }
    这样写不行呀,不往if里进呀,应该怎么写呢?我新手,谢谢大家
      

  6.   

    会有N多人给你答案的,提示一点,B/S的注意并发,CS的视具体情况注意并发
      

  7.   

    string sqlstr="select count(1) from tbl_zblei where lei_mc='"+this.TextBox1.Text+"'";
    这个就行
      

  8.   


                string sqlstr0 = "select lei_mc from tbl_zblei";
                DataSet ds = db.GetDS(sqlstr0);
                if (ds.Tables[0].Rows[0]["lei_mc"].ToString() == this.TextBox1.Text)
                {
                    AjaxAlert(Page, "数据库已有此类别!");
                }我现在目前已经写成这样了,不过这样的话只是数据库第一行有效。也就是说只有我输入交通工具的时候它才会提示我数据库已有此类别! 该怎么写啊?
      

  9.   

    对这种数据库中唯一性的判断可以做成统一的方法处理
    string _Table = "tbl_zblei";
    string _Field = "lei_mc";
    string _Value = this.TextBox1.Text;
    string _Sql = "SET @Count = ISNULL((SELECT COUNT(1) FROM [" 
       + _Table + "] WHERE ["
       + _Field + "] = @Value;";
     string _ConnStr = "";//这里写入你的数据库连接
    using(SqlConnection _Conn = new SqlConnection(ConnStr)) {
        SqlCommand _cmd = new SqlCommand(pSqlString, _Conn);
        _cmd.CommandType = CommandType.Text;
        _cmd.CommandText = _Sql;
        _SqlParam = new SqlParameter();
        _SqlParam.Direction = ParameterDirection.InputOutput;
        _SqlParam.ParameterName = "@Count";
        _SqlParam.DbType = DbType.Int64;
        _SqlParam.Value = 0;    
        _cmd.Parameters.Add(_SqlParam);
        _cmd.Parameters.Add(new SqlParameter("@Value",_Value));
        _cmd.ExecuteNonQuery()
        int _Count = _cmd.Parameters[0].Value;
        }大概就是这个意思,没有测试,你整理封装成函数就可以了
      

  10.   

    崩溃了,这么简单的问题我就是不会了。哎,谁看看能不能在我写的基础上改一改?            string sqlstr0 = "select lei_mc from tbl_zblei";
                DataSet ds = db.GetDS(sqlstr0);
                for (int i = 0; i < ds.Tables.Count; i++)
                {
                    if (ds.Tables[0].Rows[i]["lei_mc"].ToString() == this.TextBox1.Text)
                    {
                        AjaxAlert(Page, "数据库已有此类别!");
                    }
                    else
                    {
                        string sqlstr = "insert tbl_zblei select max(lei_bh)+1,'" + this.TextBox1.Text + "' from tbl_zblei";
                        SqlDataReader dr = db.GetDR(sqlstr);
                        AjaxAlert(Page, "添加成功!");
                        BindDDL();
                    }
                }
      

  11.   

    添加数据采用存储过程 查询表中是否存在名称相同但key值不同的数据 如果存在 就使用RAISERROR('已经存在相同的记录',16,1)
    后面使用try catch进行捕捉异常就行  
    如果这个不满意的话就是用AJAX 在textChange事件中实现  或者鼠标离开事件
      

  12.   

    先判断是否在表中存在,然后依据判断结果做是否插入的操作。
    可以用存储过程实现
    if not exists (select count(1) from tbl_zblei where lei_mc='参数')
    begin
       insert into tbl_zble values(值)
    end
      

  13.   

    更正一下14楼:
    string _Sql = "SET @Count = ISNULL((SELECT COUNT(1) FROM [" 
       + _Table + "] WHERE ["
       + _Field + "] = @Value),0);";
      

  14.   


    执行一条Sql去查询符合条件的记录有几条,而不是查询数据集我14楼给出了通用代码,以后类似的情况不管是什么表什么端,用着一个方法就行了