Beispiel #1
0
        static void Main(string[] args)
        {
            Program program = new Program();


            string          SQLStatement = "SELECT * FROM SCHOOLS";
            int             pageNumber   = 1;
            int             pageSize     = 1000;
            CustomException serviceError;

            Console.WriteLine("Connection String: ");
            Console.WriteLine(connectionString);

            Console.WriteLine("SQL Statement: ");
            Console.WriteLine(SQLStatement);

            Console.WriteLine("Calling GetDataSetData()...");

            DataSetData dsd = program.GetDataSetData(SQLStatement, pageNumber, pageSize, out serviceError);

            if (dsd == null || serviceError != null)
            {
                Console.WriteLine("There was a problem.");
                Console.WriteLine(serviceError.Message);
            }
            else
            {
                Console.WriteLine("Response:");
                Console.WriteLine(dsd.DataXML);
            }

            Console.WriteLine("Press any key to close...");
            Console.ReadLine();
        }
Beispiel #2
0
        public static DataSetData FromDataSet(DataSet ds)
        {
            DataSetData dsd = new DataSetData();

            dsd.Tables = new ObservableCollection <DataTableInfo>();
            foreach (DataTable t in ds.Tables)
            {
                DataTableInfo tableInfo = new DataTableInfo {
                    TableName = t.TableName
                };
                dsd.Tables.Add(tableInfo);
                tableInfo.Columns = new ObservableCollection <DataColumnInfo>();
                foreach (DataColumn c in t.Columns)
                {
                    DataColumnInfo col = new DataColumnInfo {
                        ColumnName = c.ColumnName, ColumnTitle = c.ColumnName, DataTypeName = c.DataType.FullName, MaxLength = c.MaxLength, IsKey = c.Unique, IsReadOnly = (c.Unique || c.ReadOnly), IsRequired = !c.AllowDBNull
                    };
                    if (c.DataType == typeof(System.Guid))
                    {
                        col.IsReadOnly   = true;
                        col.DisplayIndex = -1;
                    }
                    tableInfo.Columns.Add(col);
                }
            }
            dsd.DataXML = ds.GetXml();
            return(dsd);
        }
Beispiel #3
0
 public DataSetData GetDataSetData(string SQL, int PageNumber, int PageSize, out CustomException ServiceError)
 {
     try
     {
         DataSet ds = GetDataSet(SQL, PageNumber, PageSize);
         ServiceError = null;
         return(DataSetData.FromDataSet(ds));
     }
     catch (Exception ex)
     {
         ServiceError = new CustomException(ex);
     }
     return(null);
 }
Beispiel #4
0
        public static DataSet ToDataSet(DataSetData dsd)
        {
            DataSet      ds       = new DataSet();
            UTF8Encoding encoding = new UTF8Encoding();

            Byte[]       byteArray = encoding.GetBytes(dsd.DataXML);
            MemoryStream stream    = new MemoryStream(byteArray);
            XmlReader    reader    = new XmlTextReader(stream);

            ds.ReadXml(reader);
            XDocument xd = XDocument.Parse(dsd.DataXML);

            foreach (DataTable dt in ds.Tables)
            {
                var rs = from row in xd.Descendants(dt.TableName)
                         select row;

                int i = 0;
                foreach (var r in rs)
                {
                    DataRowState state = (DataRowState)Enum.Parse(typeof(DataRowState), r.Attribute("RowState").Value);
                    DataRow      dr    = dt.Rows[i];
                    dr.AcceptChanges();
                    if (state == DataRowState.Deleted)
                    {
                        dr.Delete();
                    }
                    else if (state == DataRowState.Added)
                    {
                        dr.SetAdded();
                    }
                    else if (state == DataRowState.Modified)
                    {
                        dr.SetModified();
                    }
                    i++;
                }
            }
            return(ds);
        }