Unknown
Unknown

Reputation: 29

Concatenate Datetime and string and bind result to dropdownlist using Json method

I want to concatenate DateTime field and string field in MVC application. I want Linq to Entities query to solve this. Here is my SQL query which I want in Linq.

Select accountid,TourID, ' ('+ convert(nvarchar(20), fromdate ,105) +')' + purpose as TourDetails 
from Tour
where AccountID=@AccID;

As shown in above query I want to concat fromdate and purpose. I want to pass result of this query as JSON result.

Upvotes: 2

Views: 197

Answers (2)

Emmanuel M.
Emmanuel M.

Reputation: 441

You can use something like this if you're in a MVC Controller requiring an ActionResult as output :

//here 'context' is your DbContext implementation and Tours is your DbSet.
var TourDetails= context.Tours.Where(t=>t.AccountID==_AccID)
                            .Select(s=>new {
                            AccountID = s.accountid,
                            TourID = s.TourID,
                            //s.fromdate.ToString("yyyyMMddHHmmss") use this to format your date if needed
                            TourDetails = s.fromdate.ToString() + s.purpose
                            })
                            .ToList();

//JsonRequestBehavior.AllowGet only if your not using POST method
return Json(TourDetails, JsonRequestBehavior.AllowGet);

Upvotes: 0

Amit Kumar Ghosh
Amit Kumar Ghosh

Reputation: 3726

Something like this:

    public class Tour
    {
        public int accountid { get; set; }
        public int TourID { get; set; }
        public DateTime date { get; set; }
        public string purpose { get; set; }
    }

    var t = new List<Tour>
    {
        new Tour
        {
            accountid = 1,
            TourID = 2,
            date = DateTime.Now,
            purpose = "Testing"
        }
    };   


    var output = t.Where(c => c.accountid == accId).Select(k => new
    {
        accountid = k.accountid,
        TourID = k.TourID,
        TourDetails = k.date.ToString() + k.purpose
    }).ToList();

    var o = JsonConvert.SerializeObject(output);

Upvotes: 1

Related Questions