Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据库中的日期存储不正确_C#_Asp.net_Ms Access - Fatal编程技术网

C# 数据库中的日期存储不正确

C# 数据库中的日期存储不正确,c#,asp.net,ms-access,C#,Asp.net,Ms Access,当以DD/MM/yyyyy格式在文本框中输入日期时,如果日期早于12,则将其存储为MM/DD/YYYY。我需要它以打字的形式存储 protected void InsertButton_Click(object sender, EventArgs e) { Int32 claim = (Int32)Session["Claim"]; string claim1 = Convert.ToString(claim); Label4.Text = "Claim Number

当以
DD/MM/yyyyy
格式在文本框中输入日期时,如果日期早于12,则将其存储为
MM/DD/YYYY
。我需要它以打字的形式存储

protected void InsertButton_Click(object sender, EventArgs e)
{

    Int32 claim = (Int32)Session["Claim"];
    string claim1 = Convert.ToString(claim);
    Label4.Text = "Claim Number : " + (String)claim1;
    Label4.Visible = true;

    // declare variables to hold info enterend by user
    string expenseType;
    string purpose;
    decimal amount;
    DateTime date;
    Boolean receipts;

    //assign info entered to variables entered above
    expenseType = DropDownList1. Text;
    purpose = PurposeofExpenseTextBox.Text;
    amount = Convert.ToDecimal(AmountSpentTextBox.Text);
    date = Convert.ToDateTime(DatePurchasedTextBox.Text);
    receipts = CheckBox1.Checked;
    DateTime today = DateTime.Today;

    // create connection string "conn"
    string mapPath = Server.MapPath(".");
    string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
       @"Data source= "*****";
    OleDbConnection conn = new OleDbConnection(ConnectionString);



    try
    {
        //create query to insert values into Expenses table   
        OleDbCommand cmd = new OleDbCommand("INSERT INTO Expenses (ExpenseType, PurposeofExpense, AmountSpent, DatePurchased, strEmpName, Receipts, EmployeeID, ExpNumber) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", conn);
        cmd.Parameters.Add("@ExpenseType", OleDbType.VarChar).Value = DropDownList1.Text;
        cmd.Parameters.Add("@PurposeofExpense", OleDbType.VarChar).Value = PurposeofExpenseTextBox.Text;
        cmd.Parameters.Add("@AmountSpent", OleDbType.VarChar).Value = AmountSpentTextBox.Text;
        cmd.Parameters.Add("@DatePurchased", OleDbType.VarChar).Value = DatePurchasedTextBox.Text;
        cmd.Parameters.Add("@strEmpName", OleDbType.VarChar).Value = (String)Session["New"];
        cmd.Parameters.Add("@Receipts", OleDbType.Boolean).Value = CheckBox1.Checked;
        cmd.Parameters.Add("@EmployeeID", OleDbType.VarChar).Value = (String)Session["Number"];
        cmd.Parameters.Add("@ExpNumber", OleDbType.VarChar).Value = (Int32)Session["Claim"];


        //open connection "conn"
        conn.Open();
        //execute insert query
        cmd.ExecuteNonQuery();
发件人:

日期值必须根据ODBC规范进行分隔 日期格式或由日期时间分隔符(“#”)分隔。否则,, Microsoft Access将该值视为算术表达式,并 不会引发警告或错误。例如,日期"3月5日,, 1996“必须用{d'1996-03-05}或#03/05/1996#表示; 否则,如果仅提交1993年5月3日,Microsoft Access将 评估为3除以5除以1996。此值四舍五入 到整数0,因为零日映射到1899-12-31,这是 使用的日期。管道字符(|)不能用于日期值, 即使用反引号括起来


保存前需要检查日期格式。使用一些遮罩。

我认为您需要使用正确的格式插入它:
YYYY-MM-DD HH:NN:SS
。然后,在显示时需要对其进行格式化。date=DateTime.ParseExact(DatePurchasedTextBox.Text,“DD/MM/YYYY”,System.Globalization.CultureInfo.CurrentCulture);您将它存储在
varchar
字段中,并且它的格式也应该与您的textfield相同,不确定如何推断它是
MM/dd/yyyy
格式?还有,为什么不像对
DateTime today=DateTime.today