简体   繁体   中英

Formatting LINQ SQL CE data using C# on WP7

I'm very new to C#/LINQ/WP7 development and am struggling to format data being returned from my LINQ query.

I have the following LINQ c# structure:

var boughtItemsInDB = from DBControl.MoneySpent bought in BoughtItemDB.BoughtItems
select bought;

BoughtItems = new ObservableCollection<DBControl.MoneySpent>(boughtItemsInDB);

The definition for MoneySpent is below;

    [Table(Name = "MoneySpent")]
    public class MoneySpent : INotifyPropertyChanged, INotifyPropertyChanging
    {
        // Define ID: private field, public property and database column.
        private int _itemId;

        [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = "INT NOT NULL Identity", CanBeNull = false, AutoSync = AutoSync.OnInsert)]
        public int ItemId
        {
            get
            {
                return _itemId;
            }
            set
            {
                if (_itemId != value)
                {
                    NotifyPropertyChanging("ItemId");
                    _itemId = value;
                    NotifyPropertyChanged("ItemId");
                }
            }
        }

        // Define item budget: private field, public property and database column.
        private int _itemBudget;

        [Column]
        public int ItemBudget
        {
            get
            {
                return _itemBudget;
            }
            set
            {
                if (_itemBudget != value)
                {
                    NotifyPropertyChanging("ItemBudget");
                    _itemBudget = value;
                    NotifyPropertyChanged("ItemBudget");
                }
            }
        }


        // Define item category: private field, public property and database column.
        private string _itemCategory;

        [Column]
        public string ItemCategory
        {
            get
            {
                return _itemCategory;
            }
            set
            {
                if (_itemCategory != value)
                {
                    NotifyPropertyChanging("ItemCategory");
                    _itemCategory = value;
                    NotifyPropertyChanged("ItemCategory");
                }
            }
        }



        // Define item description: private field, public property and database column.
        private string _itemDescription;

        [Column]
        public string ItemDescription
        {
            get
            {
                return _itemDescription;
            }
            set
            {
                if (_itemDescription != value)
                {
                    NotifyPropertyChanging("ItemDescription");
                    _itemDescription = value;
                    NotifyPropertyChanged("ItemDescription");
                }
            }
        }



        // Define item amount: private field, public property and database column.
        private decimal _itemAmount;

        [Column]
        public decimal ItemAmount
        {
            get
            {
                return _itemAmount;
            }
            set
            {
                if (_itemAmount != value)
                {
                    NotifyPropertyChanging("ItemAmount");
                    _itemAmount = value;
                    NotifyPropertyChanged("ItemAmount");
                }
            }
        }


        // Define item date: private field, public property and database column.
        private DateTime _itemDateTime;

        [Column]
        public DateTime ItemDateTime
        {
            get
            {
                return _itemDateTime;
            }
            set
            {
                if (_itemDateTime != value)
                {
                    NotifyPropertyChanging("ItemDateTime");
                    _itemDateTime = value;
                    NotifyPropertyChanged("ItemDateTime");
                }
            }
        }

I need to format the data returned from the database, the following is stored in my DB:

ItemDateTime - DateTime, ItemDescription - String, ItemAmount - Decimal

I need to be able to to format the Date based on the current locale of the user, and format the decimal to 2 dp.

I am also not sure if I need to use IQueryable when I get the data results .

Any help would be much appreciated.

Thanks, Mark

Since you don't provide enough detail - just a general idea

var boughtItemsInDB = from bought in BoughtItemDB.BoughtItems
select new { ItemDateTime = bought.ItemDateTime.ToString(), ItemDescription = bought.ItemDescription, ItemAmount = bought.ItemAmount.ToString("0,0.00") };

BUT formatting is better done in the control you use to display the data, not in the Linq query...

EDIT - after the addition frm OP:

From what I see the MoneySpent class is already prepared for "data binding"...

So formatting should be done in the displaying control... for some information see:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM