【问题标题】:UniqueConstraint on dataset fails when values contain space当值包含空格时,数据集上的 UniqueConstraint 失败
【发布时间】:2012-11-09 11:16:37
【问题描述】:

我有一个数据表,其中一列具有字符串值。我想对该列强制执行唯一约束,但是如果我有两个仅在末尾有一个空格的值(例如“test”和“test”),则约束将失败。我不希望这样,我希望这两个值被认为是唯一的,即使唯一的区别是最后的空格。我该怎么做?

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);
            }

【问题讨论】:

    标签: c# .net datatable dataset


    【解决方案1】:

    恐怕我不确定你能做些什么。

    它似乎只是减少了字符串末尾的空间。如果您在第二行的开头放置一个空格,如下所示:-“测试”。它包括空格并将两行确定为唯一。

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

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 2018-03-03
      • 2017-09-06
      相关资源
      最近更新 更多