Вставка NULL в DataTableC#

Место общения программистов C#
Ответить
Anonymous
 Вставка NULL в DataTable

Сообщение Anonymous »

Я пытаюсь создать меню, управляемое данными, используя данные из самоссылающейся таблицы для создания (2-уровневой) иерархической структуры. Пример данных:
MenuID ParentID Text Url CSS
1 Null Top topCSS
2 Null Second secCSS
3 1 abc z.aspx abcCSS
4 1 def y.aspx abcCSS
5 2 ghi x.aspx defCSS

Для получения этих данных я использую LINQ to Entities. Затем я заполняю DataTable, затем заполняю DataSet, а затем создаю DataRelation, прежде чем преобразовать его в XML для использования в xmlDataSource, где он преобразуется для использования в качестве источника данных меню.
Должен признаться, Я взял много кода с этих форумов, и он должен работать. За исключением того, что для преобразования требуется значение NULL в ParentID, чтобы указать пункт меню верхнего уровня, но я не могу вставить NULL в DataTable. Код ниже:
using (var cntIuvo = new iuvocexi_dbEnts())
{
var b = (from a in cntIuvo.MenuNavs select a);
DataTable myTB = new DataTable();
myTB.Columns.Add("MenuID");
myTB.Columns.Add("ParentID");
myTB.Columns.Add("url");
myTB.Columns.Add("CSS");
DataRow myDR;

foreach (var rec in b)
{
myDR = myTB.NewRow();
myDR["MenuID"] = rec.MenuID;
myDR["ParentID"] = rec.ParentID; // error is generated here
myDR["url"] = rec.url;
myDR["CSS"] = rec.CSS;
myTB.Rows.Add(myDR);
}

DataSet ds = new DataSet();
ds.Tables.Add(myTB);
ds.DataSetName = "Menus";
ds.Tables[0].TableName = "Menu";
DataRelation relation = new DataRelation("ParentChild", ds.Tables["Menu"].Columns["MenuID"], ds.Tables["Menu"].Columns["ParentID"], true);
relation.Nested = true;
ds.Relations.Add(relation);
xmlDataSource1.Data = ds.GetXml();
if (Request.Params["Sel"] != null)
Page.Controls.Add(new System.Web.UI.LiteralControl("You selected " +
Request.Params["Sel"]));
}

Как вставить NULL в DataTable или, в противном случае, как мне получить LINQ to Entities для заполнения DataTable/DataSet, или, в противном случае, как мне настроить Преобразовать, чтобы разрешить (скажем) 0 вместо NULL?
Transform.xslt находится ниже:


























?Sel=












Подробнее здесь: https://stackoverflow.com/questions/737 ... -datatable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»