Home > DeveloperSection > Forums > DataRow constructor inaccessible when writing DataSet extension?
Ashish Pandey

Total Post:128

Posted on    January-28-2014 12:06 AM

 C# C# 

 1 Reply(s)
 1078  View(s)
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();




                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;





Pravesh Singh

Total Post:412

Posted on    January-28-2014 12:51 AM

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..

Don't want to miss updates? Please click the below button!

Follow MindStick