提问人:dhivyah jaiya 提问时间:11/23/2022 最后编辑:marc_sdhivyah jaiya 更新时间:11/23/2022 访问量:59
将 csv 文件日期时间值导入 Microsoft SQL Server 时出错
Error while import csv file datetime value into Microsoft SQL Server
问:
错误:
System.InvalidCastException:“指定的强制转换无效。
以下代码行发生错误:
cmd.Parameters.AddWithValue("@DateTime", (DateTime)importRow["DateTime"]);
完整代码:
using (SqlConnection conn =New SqlConnection(@"Data Source=BL03\SQLEXPRESS; Initial Catalog=HDB; User Id=sa; Password=00"))
{
conn.Open();
foreach (DataRow importRow in S2P5.Rows)
{
SqlCommand cmd = new SqlCommand ("INSERT INTO S2P5 (DateTime, Miliseconds, MachineAutoStartStop, Pressure)" +
"VALUES (@DateTime, @Miliseconds, @MachineAutoStartStop, @Pressure)", conn);
cmd.Parameters.AddWithValue("@DateTime", (DateTime)importRow["DateTime"]);
cmd.Parameters.AddWithValue("@Miliseconds", importRow["Miliseconds"]);
cmd.Parameters.AddWithValue("@MachineAutoStartStop", importRow["MachineAutoStartStop"]);
cmd.Parameters.AddWithValue("@Pressure", importRow["Pressure"]);
cmd.ExecuteNonQuery();
}
}
答:
0赞
jmcilhinney
11/23/2022
#1
你不能将某些东西强制转换为它还没有的类型。投射不是转换。如果您正在从 CSV 文件读取,则所有内容都是 .您需要将其转换为 .有多种方法可以做到这一点。如果数据保证正确,则可以使用 或 .如果还需要验证,请使用 或 .您还应该将数值数据转换为数字。我怀疑你那里也有布尔数据,所以你也应该转换它。string
string
DateTime
DateTime.Parse
.ParseExact
.TryParse
.TryParseExact
评论
importRow["DateTime"]