.net DateTime对象,确保MM/DD/YYYY格式化

Sam*_*ith 2 .net sql ms-access datetime

似乎.net DateTime对象默认为计算机设置的任何格式.由于我来自英国,这意味着DateTime对象是DD/MM/YYYY.

这通常很好,但我正在尝试使用DateTime对象将当前时间放在Access数据库上的记录提交中.Access(或一般的SQL,实际上并不知道)要求日期格式为MM/DD/YYYY格式.

有没有办法我可以让DateTime对象只是格式化MM/DD/YYYY格式的日期,或者我将不得不转换为字符串,切换字符串,并插入?

Pau*_*rry 5

如果要插入数据库,请不要使用日期字符串.使用参数对象并为值提供日期对象.

进入

string mystatment = "Insert into TableName (column1, datecolumn) values (?,?)"

OleDbCommand cmd = conn.CreateCommand();
cmd.Commandtext = mystatement;
cmd.Parameters.AddWithValue("@column1", mycolumn1variable);
cmd.Parameters.AddWithValue("@datecolumn", yourDateTimeVariable);
Run Code Online (Sandbox Code Playgroud)

如果您使用生产代码正确执行此操作,请确保您具有异常处理等.

using (OleDbConnection conn = new OleDbConnection("connection string"))
{
    using (OleDbCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "Insert into TableName (column1, datecolumn) values (?,?)";

        OleDbParameter param;
        param = new OleDbParameter("name",  OleDbType.VarChar, 36); // if you know the size of the column specify it
        param.Value = mycolumn1variable;
        cmd.Parameters.Add(param);

        param = new OleDbParameter("mydate", OleDbType.Date); // if you know the size of the column specify it
        param.Value = yourDateTimeVariable;
        cmd.Parameters.Add(param);

        conn.Open();
        cmd.ExecuteNonQuery(); //etc
    }
}
Run Code Online (Sandbox Code Playgroud)

对于sql你使用名为@parameters而不是?在您的语句中,而是使用SqlCommand.

如果是用于屏幕显示,请根据用户的文化来查看用户设置和格式.