繁体   English   中英

从字符串 SQL (c#) 转换日期或时间时,日期时间转换失败

[英]datetime conversion failed when converting date or time from character string SQL (c#)

我试图让我的程序工作,它使用 SQL 查询中的参数将其添加到数据库中。 当我运行程序时,它会出现“从字符串转换日期或时间时日期时间转换失败”。 我尝试了许多类型的编码来使其工作,但都失败了。 SQL 代码本身有效。 这只是打破的转换。 我在这里尝试了多个其他帖子,但没有一个有效。 这是我的代码:

string query = $"UPDATE[***].[***]  SET [***]= '@FName', [***]= '@SName', [***] = '@Modified', [***] = '@Arrival', [***] = '@Departure'  where [Id] = '{id}'; ";
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("@FName", record.guestGiven);
parameters.Add("@SName", record.guestSurname);
parameters.Add("@Modified", record.ModifiedDate.ToString());
parameters.Add("@Arrival", Convert.ToString(record.arrivalDate));
parameters.Add("@Departure", Convert.ToString(record.departureDate));
mySuilvision.InsertData(query, parameters);

我还尝试执行以下操作

parameters.Add("@Modified", record.ModifiedDate.ToString("yyyy-mm-dd hh:MM:ss));

它提出的只是相同的错误,对于最后一段代码,VS错误是“无法从字符串转换为system.IFormatProvider。感谢您的帮助。

更改您的 SQL:

string query = $"UPDATE[***].[***]  SET [***]= @FName, [***]= @SName, [***] = @Modified, [***] = @Arrival, [***] = @Departure where [Id] = '{id}'; ";

通过将参数名称放在引号中,它们被视为字符串文字,这是行不通的。

另外,为什么要将 ID 添加为文字? 您也应该将其添加为参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM