2012-11-21 45 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”。它包含空间并将两行确定为唯一。

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

相关问题