急请高手指点,未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值[问题点数: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.Data.DataTable.EndLoadData() +218
System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) +329
System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) +2328950
System.Data.Common.LoadAdapter.FillFromReader(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) +28
System.Data.DataTable.Load(IDataReader reader, LoadOption loadOption, FillErrorEventHandler errorHandler) +263
usercontrol_PageNavigator.GetData(Int32 pagenum) in e:\水厂\最新版本\WSMSGBaseVer\usercontrol\PageNavigator.ascx.cs:292
usercontrol_PageNavigator.Page_PreRender(Object sender, EventArgs e) in e:\水厂\最新版本\WSMSGBaseVer\usercontrol\PageNavigator.ascx.cs:160
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
System.Web.UI.Control.OnPreRender(EventArgs e) +11056782
System.Web.UI.Control.PreRenderRecursiveInternal() +108
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3394
--------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.5456; ASP.NET 版本:2.0.50727.5456
[解决办法]
这里mssql版块。
不过你的错误提示是违反约束,我觉得你还是好好检查下,注意小细节
[解决办法]
估计表中有主键,而你要向表里插入一空行.
[解决办法]
一行或多行中包含违反非空、唯一或外键约束的值。
提示是你插入的数据出问题了
[解决办法]