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

Total Post:128

Points:898
Posted on    January-28-2014 12:06 AM

 C# C# 
Ratings:


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

                    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;

                }

            }

        }

    }



Pravesh Singh

Total Post:411

Points:2881
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