読者です 読者をやめる 読者になる 読者になる

SQL Server の Date 型に ADO.NET の DbType.Date はうまく動かない

これで例外出るのなんで~?

using (var conn = new SqlConnection(connstr))
using (var cmd = new SqlCommand(@"insert Table_1 values (@id, @date)", conn)) {
  conn.Open();
  cmd.Parameters.Add(new SqlParameter { 
    DbType = DbType.Int32, Value = 1, ParameterName = "id" 
  });
  cmd.Parameters.Add(new SqlParameter { 
    DbType = DbType.Date, Value = new DateTime(1600, 1, 1), ParameterName = "date" 
  });
  cmd.ExecuteNonQuery();
}

こっちは動きます。

using (var conn = new SqlConnection(connstr))
using (var cmd = new SqlCommand(@"insert Table_1 values (@id, @date)", conn)) {
  conn.Open();
  cmd.Parameters.Add(new SqlParameter { 
    DbType = DbType.Int32, Value = 1, ParameterName = "id" 
  });
  cmd.Parameters.Add(new SqlParameter { 
    SqlDbType = SqlDbType.Date, Value = new DateTime(1600, 1, 1), ParameterName = "date" 
  });
  cmd.ExecuteNonQuery();
}