2011-05-17 73 views
0
String or binary data would be truncated. 
The statement has been terminated. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: String or binary data would be truncated. 
The statement has been terminated. 

Source Error: 
Line 33:    ITransaction tx = session.BeginTransaction(); 
Line 34:    session.SaveOrUpdate(productX); 
Line 35:    tx.Commit(); 
Line 36:   } 
Line 37: 

Source File: ProductService.cs Line: 35 

Stack Trace: 
[SqlException (0x80131904): String or binary data would be truncated. 
The statement has been terminated.] 

<?xml version="1.0" encoding="utf-8"?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Aquamate.DataObjects.Core" assembly="Aquamate.DataObjects.Core"> 
    <class name="Product" table="revProduct"> 
     <id name="Pid" > 
      <generator class="guid.comb" /> 
     </id> 
     <many-to-one name="ProductCategory" class="Category" lazy="proxy"> 
      <column name="Catid" not-null="true" /> 
     </many-to-one> 
     <property name="NameEng" not-null="true" /> 
     <property name="NameTch" not-null="true" /> 
     <property name="Status" not-null="true" /> 
     <property name="Sort" not-null="true" /> 
    </class> 
</hibernate-mapping> 

回答

0

這是什麼錯誤通常意味着你試圖插入值的數據庫列,其中的數據的大小比是列定義更大。

檢查數據庫中爲所有映射屬性定義的大小,並將其與您嘗試插入的數據進行比較。

NHIbernate Profiler可以成爲您最好的朋友