在ORACLE中设置了联合主键(name,name2) 字段类型都是VARCHAR2(20),里面已有2条记录的联合主键分别为 (测试,侧1),(测试,测12),奇怪的是当增加(测试,测12)不能正常添加,可是当增加(测试,侧1)居然可以添加!!!!!!!!!天大的怪事

解决方案 »

  1.   

    ==================添加代码========================
    private void ButAdd_Click(object sender, System.EventArgs e)
    { bool repeat=false;//联合主键是否重复的标记
    string strCommand="insert into 表1 values           ('"+this.TxtSortName .Text +"','"+this.DropDownList1.SelectedItem .Value  +"','"+this.DropDownList1.SelectedItem .Text  +"')";

    try
    {
    Connect.commandToOracle  (strCommand);
    Response.Write ("<script>alert('添加成功!');</script>");
    }
    catch(System.Data .OracleClient .OracleException  ex)
    { repeat=true;
    if(repeat==true)
    Response.Write ("<script>alert('主键重复,添加失败!');</script>");
    }
    }
      

  2.   

    先检查自己的程序,不要一出问题就认为是Oracle的bug,Oracle不可能有这样低级的Bug.否则还怎么用?
      

  3.   

    你单步调试下,然后把相应的sql语句放到pl/sql里面去执行看能否正确执行!另外把你的字符串都得有个trim函数
      

  4.   

    谢谢 jimu8130(IBMT43) ,果然是数据库里的原始数据多了个空格?TRIM()已经加上,多写,散分了