2012-11-21 43 views
2

我有一個數據表,其中一列具有字符串值。我想對該列強制執行一個唯一的約束,但是如果我有兩個值只在最後有一個空格(例如「test」和「test」),約束就會失敗。我不想要這樣,我希望這兩個值被認爲是唯一的,即使唯一的區別是最後一個空格。我怎樣才能做到這一點?數據集上的UniqueConstraint在值包含空格時失敗

try 
      { 
       DataTable dt = new DataTable("test"); 
       dt.Columns.Add("nr"); 
       dt.Columns.Add("text"); 
       DataRow dr = dt.NewRow(); 
       dr.ItemArray = new object[] { 1, "test" }; 
       dt.Rows.Add(dr); 
       dr = dt.NewRow(); 
       dr.ItemArray = new object[] { 2, "test " }; 
       dt.Rows.Add(dr); 
       dr = dt.NewRow(); 
       dr.ItemArray = new object[] { 3, "alabala" }; 
       dt.Rows.Add(dr); 
       dr = dt.NewRow(); 
       dr.ItemArray = new object[] { 4, "bbb" }; 
       dt.Rows.Add(dr); 

       DataSet ds = new DataSet("testds"); 
       ds.Tables.Add(dt); 

       ds.EnforceConstraints = true; 
       UniqueConstraint unqUID = new UniqueConstraint(ds.Tables[0].Columns[1], true); 
       ds.Tables[0].Constraints.Add(unqUID); 

       int count = ds.Tables[0].Rows.Count; 
      } 
      catch (Exception ex) { 
       MessageBox.Show(ex.Message); 
      } 

回答

1

我不確定有什麼事情可以用這個我很害怕。

它似乎打折了字符串末尾的空格。如果您在第二行的開頭放置空格,如下所示: - 「test」。它包含空間並將兩行確定爲唯一。

我很想知道解決方案是否存在,但我無法找到答案。

相關問題