DATAROW CONSTRUCTOR INACCESSIBLE WHEN WRITING DATASET EXTENSION?

Ashish Pandey

Total Post:128

Points:898
Posted by  Ashish Pandey
C# 
C#
 1372  View(s)
Ratings:
Rate this:

I am trying to write a couple of extensions to convert UniDataSets and UniRecords to DataSet and DataRow but I get the following error when I try to compile.

'System.Data.DataRow.DataRow(System.Data.DataRowBuilder)' is inaccessible due to its protection level

Is there any way to fix this or should I abandon this approach and come at it a different way?

    using System;           

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Data;

    using IBMU2.UODOTNET;

    namespace Extentions

    {

        public static class UniDataExtentions

        {

            public static System.Data.DataSet ImportUniDataSet(this System.Data.DataSet dataSet, IBMU2.UODOTNET.UniDataSet uniDataSet)

            {

                foreach (UniRecord uniRecord in uniDataSet)

                {

                    DataRow dataRow = new DataRow();

                    dataRow.ImportUniRecord(uniRecord);

                    dataSet.Tables[0].ImportRow(dataRow);

                }

                return dataSet;

            }

            public static void ImportUniRecord(this System.Data.DataRow dataRow, IBMU2.UODOTNET.UniRecord uniRecord)

            {

                int fieldCount = uniRecord.Record.Dcount();

                // ADD COLUMS

                dataRow.Table.Columns.AddRange(new DataColumn[fieldCount]);

                // ADD ROW

                for (int x = 1; x < fieldCount; x++)

                {

                    string stringValue = uniRecord.Record.Extract(x).StringValue;

                    dataRow[x] = stringValue;

                }

            }

        }

    }

  1. Pravesh Singh

    Post:412

    Points:2888
    Re: DataRow constructor inaccessible when writing DataSet extension?

    Hi Ashish,


    I tried a simpler approach, however it is for multiple rows and can be applied to a single row as well:

    //Declare a variable for multiple rows

    DataRow[] rows = null;

    //get some data in a DataTable named table

    //Select specific data from DataTable named table

    rows = table.Select("column = 'ColumnValue'");

    //Read the value in a variable from the row

    string ColumnValue = rows[0]["column"].ToString();

    hope this helps..

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!