日期:2014-05-17  浏览次数:20563 次

急请高手指点,未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值[问题点数:50分]
 

我的Gbase数据库里对应的表没有约束、外键,就1条数据。

c#代码如下:
  DataTable dt = new DataTable();

        GBaseConnection sqlCon = new GBaseConnection(ConfigurationManager.ConnectionStrings[connectionstring].ToString());

        GBaseCommand sqlCmd = new GBaseCommand();

        sqlCmd.Connection = sqlCon;

        if (ViewState["flag"] != null && (bool)ViewState["flag"] == true)
        {
            sqlCmd.CommandType = CommandType.StoredProcedure;

            if (ViewState["para"] != null)
            {
                foreach (object arrary in (ArrayList)ViewState["para"])
                {
                    Hashtable htb = (Hashtable)arrary;
                    GBaseParameter sqlPara = new GBaseParameter(htb["name"].ToString(), htb["value"]);
                    sqlCmd.Parameters.Add(sqlPara);
                }
            }
        }

        sqlCmd.CommandText = ViewState["query"].ToString();
        sqlCmd.Connection.Open();
        dt.Load(sqlCmd.ExecuteReader());//出现下面的错误
        sqlCmd.Connection.Close();

        total = dt.Rows.Count;




“/”应用程序中的服务器错误。
--------------------------------------------

未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.ConstraintException: 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。

源错误: 


行 290:        sqlCmd.CommandText = ViewState["query"].ToString();
行 291:        sqlCmd.Connection.Open();
行 292:        dt.Load(sqlCmd.ExecuteReader());
行 293:        sqlCmd.Connection.Close();
行 294:
 

源文件: e:\水厂\最新版本\WSMSGBaseVer\usercontrol\PageNavigator.ascx.cs    行: 292 

堆栈跟踪: 


[ConstraintException: 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。]
   System.Data.DataTable.EnableConstraints() +2826964
   System.Data.DataTable.set_EnforceConstraints(Boolean value) +48
   System.Da