Идентификатор ожидаемый.

Этот код дает мне сообщение» identifier expected». Я выделил проблемные линии (BirthDate.Текст):

// Add user data to DB.
AddUser myUser = new AddUser();
bool addSuccess = myUser.AddUsr
(
    UserName.Text,
    PrefUserName.Text,
    OtherNames.Text,
    MaritalStatus.SelectedValue,
    SpouseName.Text,
    **BirthDate.Text,**
    Profession.Text,
    PostalAddress.Text,
    ResAddress.Text,
    Email.Text,
    PhoneNumber.Text,
    Church.Text,
    Gender.SelectedValue,
    HomeTown.Text,
    Area.Text,
    City.Text,
    Region.Text,
    Country.Text,
    Approved.Checked,
    ApprovedBy.Text,
    **DateCreated.Text,**
    RoleName.SelectedValue,
    Photos.FileName
);

Это сам код класса:

using System;
using MemberMgr.Models;
namespace MemberMgr.Logic
{
    public class AddUser
    {
        public bool AddUsr
        (
            string UserName, 
            string PrefUserName, 
            string OtherNames, 
            string MaritalStatus, 
            string SpouseName, 
            DateTime BirthDate, 
            string Profession, 
            string PostalAddress, 
            string ResAddress, 
            string Email, 
            string PhoneNumber, 
            string Church, 
            string Gender, 
            string HomeTown, 
            string Area, 
            string City, 
            string Region, 
            string Country, 
            bool Approved, 
            string ApprovedBy, 
            DateTime DateCreated, 
            string RoleName, 
            string Photos
        )
        {
            var myUser = new IdentityModels();
            myUser.UserName = UserName;
            myUser.PrefUserName = PrefUserName;
            myUser.OtherNames = OtherNames;
            myUser.MaritalStatus = MaritalStatus;
            myUser.SpouseName = SpouseName;
            myUser.BirthDate = BirthDate;
            myUser.Profession = Profession;
            myUser.PostalAddress = PostalAddress;
            myUser.ResAddress = ResAddress;
            myUser.Email = Email;
            myUser.PhoneNumber = PhoneNumber;
            myUser.Church = Church;
            myUser.Gender = Gender;
            myUser.HomeTown = HomeTown;
            myUser.Area = Area;
            myUser.City = City;
            myUser.Region = Region;
            myUser.Country = Country;
            myUser.Approved = Approved;
            myUser.ApprovedBy = ApprovedBy;
            myUser.DateCreated = DateCreated;
            myUser.RoleName = RoleName;
            myUser.Photos = Photos;

            using (IdentityUserContext _db = new IdentityUserContext())
            {
                // Add User data to DB.
                _db.users.Add(myUser);
                _db.SaveChanges();
            }
            // Success.
            return true;
        }

    }
}

Мои старшие программисты там, любезно помогите мне. Я знаю, что текстовые поля принимают строковый тип данных, и их содержимое должно быть текстом. Я что-то упускаю?

2 ответа

  1. Ваши DateCreatedи BirthDateтипаDateTime, BirthDate.Textи DateCreated.Textтипа string. Вам нужно преобразовать stringв DateTimeнапример с:

    DateTime.Parse(DateCreated.Text)
    

    или если известен формат:

    DateTime.ParseExact(DateCreated.Text, "dd.MM.yyyy",
        System.Globalization.CultureInfo.InvariantCulture);
    
  2. Ваше BirthDateсвойство фактически определено как DateTimeобъект, а не строка, поэтому вам нужно будет явно проанализировать дату из вашего текстового поля, чтобы это работало должным образом с помощью DateTime.Parse()DateTime.ParseExact()методов or :

    bool addSuccess = myUser.AddUsr
    (
         /* Omitted for brevity */
         DateTime.Parse(BirthDate.Text),
         /* Omitted for brevity */
    );
    

    или если вы явно знаете формат, в котором он будет передан, вы можете использовать :

    // You can define a formatting string like "MM/dd/yyyy" that cooresponds to the format that
    // you know your TextBox will use
    DateTime.ParseExact(BirthDate.Text,"{format-string}",null);
    

    Та же проблема относится к DateCreatedсвойству, которое также ожидает получить DateTimeобъект в отличие от строки, которую вы в настоящее время передаете