1

LINQ クエリから返された DataTable から実行時にツリービューを沸騰させようとしています。返されるフィールドは次のとおりです。

名前 = ケースメモ ID | 連絡日 | ParentNote TYPE = ガイド | 日時 | ガイド

ParentNote フィールドは、CaseNoteID 列のエントリと一致します。Select(filter) で実行時エラーの列 [ea8428e4] が見つかりません。その英数字は、いずれかのガイドの最初のセクションです。コードフィルターをステップスルーすると="ParentNote=ea8428e4-1274-42e8-a31c-f57dc2f189a4"

私は何が欠けていますか?

var tmpCNoteID = dr["CaseNoteID"].ToString();
                var filter = "ParentNote="+tmpCNoteID;

                DataRow[] childRows = cNoteDT.Select(filter);
4

4 に答える 4

7

GUID を一重引用符で囲みます。

var filter = "ParentNote='"+tmpCNoteID+"'";
于 2009-05-01T19:02:47.697 に答える
0

これが私が使用する1つの方法です:

            MyStrongDataSet ds = new MyStrongDataSet();
            Guid myUuid = new Guid("11111111-2222-3333-4444-555555555555");

            System.Data.DataRow[] rows = ds.MyStrongTable.Select("MyGuidProperty = (CONVERT('" + myUuid.ToString("N") + "', 'System.Guid'))");


            //Fish out a single row if need be and cast to a strong row
            if (null != rows)
            {
                if (rows.Length > 0)
                {
                    MyStrongDataSet.MyStrongTableRow returnRow = rows[0] as MyStrongDataSet.MyStrongTableRow;
                    return returnRow;

                }
            }
            return null;

ここにわずかなバリエーションがあります:

  string filterSql = "MyGuidProperty ='{0}'";

  filterSql = string.Format(filterSql, Guid.NewGuid().ToString("D"));
于 2011-04-21T20:56:08.070 に答える