向数据库导入文本数据报该字符串未被识为datatime有效值,从索引[0]处开始,但我确实进行数据转换了

问题遇到的现象和发生背景

已经将数据转换成datatime类型了,但还是报错

img

问题相关代码,请勿粘贴截图

using (SqlConnection con = new SqlConnection(conStr))
{

                con.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                   // string r =reader.CurrentEncoding.ToString();
                     //MessageBox.Show("当前编码格式为:{0}",r);
                    while (!string.IsNullOrEmpty(temp = reader.ReadLine()))
                  {
                       var strs = temp.Split(',');
                        string sql = string.Format(@"
                 insert into tblStudent
                 (stuName,stuSex,stuBirthDate,stuPhone)
                 values('{0}','{1}','{2}','{3}')", strs[1], strs[2], Convert.ToDateTime(strs[3]), strs[4]);
                        cmd.CommandText = sql;//不要strs[0],因为那是主键Id列,sql会自动处理
                        cmd.ExecuteNonQuery();
                    }
                }
            }
运行结果及报错内容

附上导入的数据

img

我的解答思路和尝试过的方法

经过数据转换应该是没问题了,但还是说索引[0]处有问题

我想要达到的结果

请问该怎么解决?

你的第一行是

img


吗,是的话要去掉这一行

DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo();
dtFormat.ShortDatePattern = "yyyy/MM/dd";
Convert.ToDateTime(strs[3])改为Convert.ToDateTime(strs[3], dtFormat);