通过C#更新access中的日期时间。数据不匹配
我将日期和时间加载到文本框中进行编辑,但我需要将其作为日期时间存储在access数据库中,而不是字符串,并且在SQL参数中无法记住或找到解析它的语法。。。这是我的代码通过C#更新access中的日期时间。数据不匹配,c#,sql,datetime,ms-access,C#,Sql,Datetime,Ms Access,我将日期和时间加载到文本框中进行编辑,但我需要将其作为日期时间存储在access数据库中,而不是字符串,并且在SQL参数中无法记住或找到解析它的语法。。。这是我的代码 string strSql = "UPDATE OCR SET OCR = @OCR, [OCR Title] = @OCRTitle, DeadlineDate = @DeadlineDate;"; using (OleDbConnection newConn = new OleDbConnection(strProvider
string strSql = "UPDATE OCR SET OCR = @OCR, [OCR Title] = @OCRTitle, DeadlineDate = @DeadlineDate;";
using (OleDbConnection newConn = new OleDbConnection(strProvider))
{
using (OleDbCommand dbCmd = new OleDbCommand(strSql, newConn))
{
dbCmd.CommandType = CommandType.Text;
dbCmd.Parameters.AddWithValue("@OCRTitle", textBox6.Text);
dbCmd.Parameters.AddWithValue("@OCR", textBox5.Text);
dbCmd.Parameters.AddWithValue("@DeadlineDate", textBox7.Text);
newConn.Open();
dbCmd.ExecuteNonQuery();
}
}
您正在指定一个字符串作为截止日期值。您应该指定一个
DateTime
如果确实需要,您可以使用DateTime.Parse
(或DateTime.ParseExact
,或DateTime.TryParseExact
)来解析文本表示形式,但最好先使用基于日期的控件,而不是使用文本表示形式
(目前还不清楚这是什么类型的应用程序——WinForms、ASP.NET等——但现在大多数GUI都有某种日期选择器。)
编辑:此外,您需要更改向命令添加参数的顺序,使其与SQL语句中使用参数的顺序相匹配。这些是有效的位置参数-名称被忽略。与SQL中的命名参数相比,使用
?
可能更清晰。您正在指定一个字符串作为截止日期值。您应该指定一个DateTime
如果确实需要,您可以使用DateTime.Parse
(或DateTime.ParseExact
,或DateTime.TryParseExact
)来解析文本表示形式,但最好先使用基于日期的控件,而不是使用文本表示形式
(目前还不清楚这是什么类型的应用程序——WinForms、ASP.NET等——但现在大多数GUI都有某种日期选择器。)
编辑:此外,您需要更改向命令添加参数的顺序,使其与SQL语句中使用参数的顺序相匹配。这些是有效的位置参数-名称被忽略。与SQL中的命名参数相比,使用
?
可能更清晰。您正在指定一个字符串作为截止日期值。您应该指定一个DateTime
如果确实需要,您可以使用DateTime.Parse
(或DateTime.ParseExact
,或DateTime.TryParseExact
)来解析文本表示形式,但最好先使用基于日期的控件,而不是使用文本表示形式
(目前还不清楚这是什么类型的应用程序——WinForms、ASP.NET等——但现在大多数GUI都有某种日期选择器。)
编辑:此外,您需要更改向命令添加参数的顺序,使其与SQL语句中使用参数的顺序相匹配。这些是有效的位置参数-名称被忽略。与SQL中的命名参数相比,使用
?
可能更清晰。您正在指定一个字符串作为截止日期值。您应该指定一个DateTime
如果确实需要,您可以使用DateTime.Parse
(或DateTime.ParseExact
,或DateTime.TryParseExact
)来解析文本表示形式,但最好先使用基于日期的控件,而不是使用文本表示形式
(目前还不清楚这是什么类型的应用程序——WinForms、ASP.NET等——但现在大多数GUI都有某种日期选择器。)
编辑:此外,您需要更改向命令添加参数的顺序,使其与SQL语句中使用参数的顺序相匹配。这些是有效的位置参数-名称被忽略。使用
?
可能比使用SQL中的命名参数更清楚。仍然表示不匹配错误:S。。使用dbCmd.Parameters.AddWithValue(“@DeadlineDate”,DateTime.Parse(textBox7.Text))@user3086447:您确定这是失败的参数吗?数据库中的OCR
和ocrtile
类型是什么?您确定DeadlineDate
的类型是DateTime
?是的,我的代码中还有其他语句可以与OCR和OCR标题配合使用。我的访问列也被设置为日期/时间是。@user3086447:那么我真的希望它能正常运行。除了“不匹配错误”之外,您还有其他信息吗?我注意到您正在以与update语句中的顺序不同的顺序添加参数-这可能是个问题吗?另外,您正在尝试更新所有行。。。这是故意的吗?是的,我可能在我的数据库中有一个错误,我将在查看后更新。仍然说不匹配错误:S。。使用dbCmd.Parameters.AddWithValue(“@DeadlineDate”,DateTime.Parse(textBox7.Text))@user3086447:您确定这是失败的参数吗?数据库中的OCR
和ocrtile
类型是什么?您确定DeadlineDate
的类型是DateTime
?是的,我的代码中还有其他语句可以与OCR和OCR标题配合使用。我的访问列也被设置为日期/时间是。@user3086447:那么我真的希望它能正常运行。除了“不匹配错误”之外,您还有其他信息吗?我注意到您正在以与update语句中的顺序不同的顺序添加参数-这可能是个问题吗?另外,您正在尝试更新所有行。。。这是故意的吗?是的,我可能在我的数据库中有一个错误,我将在查看后更新。仍然说不匹配错误:S。。使用dbCmd.Parameters.AddWithValue(“@DeadlineDate”,DateTime.Parse(textBox7.Text))@user3086447:您确定这是失败的参数吗?数据库中的OCR
和ocrtile
类型是什么?您确定DeadlineDate
的类型是DateTime
?是的,我的代码中还有其他语句可以与OCR和OCR标题配合使用。我的访问列也设置为Dat