数据库中日期的格式是什么? asp.net

时间:2015-03-28 11:20:47

标签: c# asp.net database datetime

这是我的代码

        Establish_Connection con = new Establish_Connection();
        string Fname    = TxtFirstName.Text;
        string Lname    = TxtLastName.Text;
        string Email    = TxtEmailSingUp.Text;
        string Password = TxtPasswordSignUp.Text;
        string DOBDay   = DDLDay.SelectedValue;
        string DOBMonth = DDLMonth.SelectedValue;
        string DOBYear  = DDLYear.SelectedValue;
        string DOB= DOBYear +"/"+ DOBMonth +"/"+ DOBDay;
        string Gender   = LblGender.SelectedValue;
        string UserName = txtUserName.Text;


        string connStr = ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);

            conn.Open();

        try
        {
            string constr = "INSERT INTO USERS (UserName,FName,LName,DOB,Gender,Email,Password) VALUES (@UserName,@FName,@LName,@DOB,@Gender,@Email,@Password);";
            SqlCommand cmd = new SqlCommand(constr,conn);
            cmd.Parameters.AddWithValue("@Password", Password);
            cmd.Parameters.AddWithValue("@UserName",UserName);
            cmd.Parameters.AddWithValue("@DOB",DOB);
            cmd.Parameters.AddWithValue("@Gender", Gender);
            cmd.Parameters.AddWithValue("@Email", Email);
            cmd.Parameters.AddWithValue("@LName", Lname);
            cmd.Parameters.AddWithValue("@FName", Fname);

             int affectrows = cmd.ExecuteNonQuery();

            Response.Write("connection established");
        }
        catch (Exception ex)
        {
            Response.Write("error" + ex.Message.ToString());
        }

    }

它一直告诉我DOB中的错误,我需要将其转换为日期时间类型,但是当我使用Convert.ToDateTime()转换它时,它仍然会给我错误。在数据库中类型为DateTime,任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

你应该这样做:

DateTime DOB= new DateTime(Convert.ToInt32(DOBYear), Convert.ToInt32(DOBMonth), Convert.ToInt32(DOBDay));
然后

AddWithValue将正常运行,因为该值是有效的DateTime

答案 1 :(得分:0)

Kamal的代码是正确的。

数据库通常将日期/时间存储为数字,其整数部分是自某个开始日期以来的天数,小数是自当天开始以来的毫秒数/微秒数。对于使用它的人来说,这通常是完全透明的,不应该被依赖。

根据数据库的不同,可能会识别出许多字符串格式。例如,SQL Server可能无法识别您提供的格式,但会识别YYYY-MM-DD。各种形式的DD / MM / YYYY和MM / DD / YYYY可能是一个问题,我宁愿永远不要使用它们。我通常使用DD MMM YYYY(例如' 2015年3月28日')当我使用字符串来表示日期时,但是在C#中,因为它具有完美的DateTime类型,其中AFAIK所有数据库驱动程序都了解我用它。