title: Error inserting data using SqlBulkCopy
body: <p>I'm trying to batch insert data into SQL 2008 using <code>SqlBulkCopy</code>.</p>
  
  <p>Here is my table:</p>
  
  <pre><code>IF OBJECT_ID(N'statement', N'U') IS NOT NULL
  DROP TABLE [statement]
  GO
  CREATE TABLE [statement](
    [ID] INT IDENTITY(1, 1) NOT NULL,
    [date] DATE NOT NULL DEFAULT GETDATE(),
    [amount] DECIMAL(14,2) NOT NULL,
  CONSTRAINT [PK_statement] PRIMARY KEY CLUSTERED
  (
      [ID] ASC
  ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  ) ON [PRIMARY]
  GO
  </code></pre>
  
  <p>Here is my code:</p>
  
  <pre><code>private DataTable GetTable()
  {
      var list = new List&lt;DataColumn&gt;();
      list.Add(new DataColumn("amount", typeof(SqlDecimal)));
      list.Add(new DataColumn("date", typeof(SqlDateTime)));
  
      var table = new DataTable("statement");
      table.Columns.AddRange(list.ToArray());
  
      var row = table.NewRow();
      row["amount"] = (SqlDecimal)myObj.Amount; // decimal Amount { get; set; }
      row["date"] = (SqlDateTime)myObj.Date; // DateTime Date { get; set }
      table.Rows.Add(row);
  
      return table;
  }
  
  private void WriteData()
  {
      using (var bulk = new SqlBulkCopy(strConnection, SqlBulkCopyOptions.KeepIdentity &amp; SqlBulkCopyOptions.KeepNulls))
      {
          //table.Columns.ForEach(c =&gt; bulk.ColumnMappings.Add(new SqlBulkCopyColumnMapping(c.ColumnName, c.ColumnName)));
          bulk.BatchSize = 25;
          bulk.DestinationTableName = "statement";
          bulk.WriteToServer(GetTable()); // a table from GetTable() 
      }
  }
  </code></pre>
  
  <p>So I'm getting error:</p>
  
  <blockquote>
    <p>The given value of type <code>SqlDateTime</code> from the data source cannot be converted to type <code>date</code> of the specified target column.</p>
  </blockquote>
  
  <p>Why?? How can I fix that? Help me, please!</p>