将 csv 文件日期时间值导入 Microsoft SQL Server 时出错

Error while import csv file datetime value into Microsoft SQL Server

提问人:dhivyah jaiya 提问时间:11/23/2022 最后编辑:marc_sdhivyah jaiya 更新时间:11/23/2022 访问量:59

问:

错误:

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();
    }
}
C# SQL-Server CSV 强制转换

评论

0赞 Chetan 11/23/2022
你有什么价值?importRow["DateTime"]
1赞 jmcilhinney 11/23/2022
请不要发送垃圾邮件标签来诱骗人们查看您的问题。此问题与 C 语言、SSMS 或 WinForms 完全无关。
0赞 dhivyah jaiya 11/23/2022
值:2022/10/25 12:00:00 AM

答:

0赞 jmcilhinney 11/23/2022 #1

你不能将某些东西强制转换为它还没有的类型。投射不是转换。如果您正在从 CSV 文件读取,则所有内容都是 .您需要将其转换为 .有多种方法可以做到这一点。如果数据保证正确,则可以使用 或 .如果还需要验证,请使用 或 .您还应该将数值数据转换为数字。我怀疑你那里也有布尔数据,所以你也应该转换它。stringstringDateTimeDateTime.Parse.ParseExact.TryParse.TryParseExact