我现在在做的是供应商,新增供应商时,要求不能与已有的供应商(在数据库已经存在的供应商)相同
请问大家有什么方法嘛?

解决方案 »

  1.   

    在数据库中设置该列的 UNIQUE 属性
      

  2.   

    我是搜索了,但我查出来的怎么是刚增加的一条记录,我把代码贴出来,你们看看
    DataTable myDataTable=new DataTable("provider_lst");
    myDataTable=(DataTable)ViewState["MyTable"];
    ArrayList sqls=new ArrayList();
    string sql;
    string newID=this.myPub.getNewID("provider_hed","provider_id","11");
    int newListID=this.myPub.getNewNum("provider_lst","id");
    sql="insert provider_hed(";
    sql=sql+"provider_id,pro_name,pro_address,pro_person,pro_phone,pro_mobile,pro_fax,input_person,input_date";
    sql=sql+")values(";
    sql=sql+"'"+newID+"','";
    sql=sql+this.pro_name.Text.Trim()+"','"+this.pro_address.Text.Trim()+"','";
    sql=sql+this.pro_person.Text.Trim()+"','"+this.pro_phone.Text.Trim()+"','";
    sql=sql+this.pro_mobile.Text.Trim()+"','"+this.pro_fax.Text.Trim()+"','";
    sql=sql+this.Session["user_id"]+"','"+DateTime.Now.ToString()+"')"; 
    sqls.Add(sql);

    for(int i=0;i<myDataTable.Rows.Count;i++)
    {
    sql="insert provider_lst(";
    sql=sql+"id,provider_id,pro_name,materiel_id,g_name,g_model,ref_price,currency";
    sql=sql+")values(";
    sql=sql+(newListID+i).ToString()+",'"+newID+"','"+this.pro_name.Text.Trim()+"','";
    sql=sql+myDataTable.Rows[i]["materiel_id"].ToString()+"','";
    sql=sql+myDataTable.Rows[i]["g_name"].ToString()+"','";
    sql=sql+myDataTable.Rows[i]["g_model"].ToString()+"',";
    sql=sql+myDataTable.Rows[i]["ref_price"].ToString()+",'";
    sql=sql+myDataTable.Rows[i]["currency"].ToString()+"')";
    sqls.Add(sql);
    }
    if(this.myPub.ExecuteSqls((string[])sqls.ToArray(typeof(string)))==sqls.Count)
    this.myPub.closePage();
    可能代码比较多,这是保存时的代码,我在中间加上查询数据库的记录,可怎么查,都只是查出我刚增加的这一票,不知道是怎么回事?
      

  3.   

    加一个判断,通过user_id找到provider_id然后把得到的这个id和数据表provider_hed中的provider_id比较如果相同就不执行插入操作。