Загрузить DataTable с помощью Linq - конвертировать C # в VB.Net - PullRequest
1 голос
/ 16 апреля 2009

Я нашел следующий пример на http://www.erictobia.com/2009/02/21/LoadADataTableWithLINQ.aspx К сожалению, он мне нужен в VB, и он использует некоторые конструкции, которые не распознаются ни мной, ни автоматическими преобразователями кода. Кто-нибудь знает, как это должно быть написано в VB.Net? (проблемным местом является «выберите новый {...»)

PeopleDataSet ds = new PeopleDataSet();
using (PeopleDataContext context = new PeopleDataContext())
{
    (from p in context.Persons
     select new
                {
                    Row = ds.Person.AddPersonRow(p.Id, p.FirstName, p.LastName)
                }).ToList();

}

Ответы [ 4 ]

2 голосов
/ 16 апреля 2009

Энтони дал правильный ответ. Однако для записи: конструкция new { … } может быть выражена в VB следующим образом:

Dim result = From p As Person in context.Persons _
             Select New With { _
                 .Row = ds.Person.AddPersonRow(p.Id, p.FirstName, p.LastName) _
             }
2 голосов
/ 16 апреля 2009

Мне кажется, что в случае использования LINQ используется LINQ.

Только для каждого контекста. Персоны

For Each p As Person In context.Persons
   ds.Person.AddPersonRow(p.Id, p.FirstName, p.LastName)
Next
1 голос
/ 19 января 2011
 tbl_EmployeeDetail obj_empdetails = new tbl_EmployeeDetail();
                obj_empdetails = Connection.obj_EmployeeDataClassesDataContext.tbl_EmployeeDetails.Single(m => m.EmployeeID == Convert.ToInt32(int_EmpID));
                obj_empdetails.FirstName = str_FirstName;
                obj_empdetails.LastName = str_LastName;
                obj_empdetails.DateOfJoining = dt_DateOfJoining;
                obj_empdetails.DepartmentID = int_DepartmentID;
                obj_empdetails.Designation = str_Designation;
                obj_empdetails.ExperienceInMonths = int_ExperienceInMonths;
                obj_empdetails.salary = dec_Salary;
                Connection.obj_EmployeeDataClassesDataContext.SubmitChanges();
0 голосов
/ 03 января 2011

пространство имен TestBLL { открытый статический класс ConvertToDataTable { #region "Преобразование ObjectArray в Datatable"

    /// <summary>
    /// Method to Convert Datatable from object Array.
    /// </summary>
    /// <param name="array"></param>
    /// <returns></returns>
    public static DataTable ConvertToDatatable(this Object[] array)
    {

        PropertyInfo[] properties = array.GetType().GetElementType().GetProperties();
        DataTable dt = CreateDataTable(properties);
        if (array.Length != 0)
        {
            foreach (object o in array)
                FillData(properties, dt, o);
        }
        return dt;
    }

    /// <summary>
    /// Method To Create total column of datatable.
    /// </summary>
    /// <param name="properties"></param>
    /// <returns></returns>
    private static DataTable CreateDataTable(PropertyInfo[] properties)
    {
        DataTable dt = new DataTable();
        DataColumn dc = null;
        foreach (PropertyInfo pi in properties)
        {
            dc = new DataColumn();
            dc.ColumnName = pi.Name;
            //dc.DataType = pi.PropertyType;
            dt.Columns.Add(dc);
        }
        return dt;
    }

    /// <summary>
    /// Method for Fill data in DataTable.
    /// </summary>
    /// <param name="properties"></param>
    /// <param name="dt"></param>        
    private static void FillData(PropertyInfo[] properties, DataTable dt, Object o)
    {
        DataRow dr = dt.NewRow();
        foreach (PropertyInfo pi in properties)
        {
            dr[pi.Name] = pi.GetValue(o, null);
        }
        dt.Rows.Add(dr);
    }

    #endregion

}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...