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代码>!