将DataTable作为参数传递时发生C#FormatException

将DataTable作为参数传递时发生C#FormatException,c#,sql-server,datatable,formatexception,C#,Sql Server,Datatable,Formatexception,我正在尝试读取Excel文件,并希望将记录发送到存储过程以插入到表中,将DataTable作为参数。 这是我的StoredProcess create PROCEDURE [dbo].[spInsertInvoice] @tblInvoice InvoiceType READONLY AS BEGIN SET NOCOUNT ON; INSERT INTO Excel SELECT Template, C

我正在尝试读取Excel文件,并希望将记录发送到存储过程以插入到表中,将
DataTable
作为
参数
。 这是我的
StoredProcess

    create PROCEDURE [dbo].[spInsertInvoice]
    @tblInvoice InvoiceType READONLY
    AS
    BEGIN
          SET NOCOUNT ON;
          INSERT INTO Excel
          SELECT Template, Cust_Name, Invoice_No, InvoiceDate FROM @tblInvoice
    END
这是c代码:


我做错了什么?

调用
ParseExact
的格式部分是您试图从中解析的格式,因此如果excel中字符串的日期格式是5-Jun-15,您应该使用

DateTime InvoiceDate = DateTime.ParseExact(row.Cells[3].Text, "d-MMM-yy", CultureInfo.InvariantCulture);

行.Cells[3].Text的值是多少?您的
当前区域性是多少?调试你的代码并告诉我们。先生,检查编辑的帖子。此外,InvoiceDate包含1/1/0001 12:00:00 AM,我正在上载的Excel工作表包含此日期
5-Jun-15
 DateTime InvoiceDate = DateTime.ParseExact(row.Cells[3].Text, "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime InvoiceDate = DateTime.ParseExact(row.Cells[3].Text, "d-MMM-yy", CultureInfo.InvariantCulture);